diff --git a/.eslintrc b/.eslintrc index bd7520c..f52d209 100644 --- a/.eslintrc +++ b/.eslintrc @@ -78,6 +78,8 @@ }] }, "globals": { - "console": true + "console": true, + "process": true, + "__DEV__": true } } diff --git a/dist/react-tags.js.map b/dist/react-tags.js.map index 94f0f5a..2488277 100644 --- a/dist/react-tags.js.map +++ b/dist/react-tags.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap b654d0f9a0effe52f02c","webpack:///./src/component/js/Tags.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./src/component/js/Tag.js","webpack:///./src/component/scss/styles.scss"],"names":["Tags","props","state","tags","initialTags","value","maxTags","length","uniqueTags","onChange","onAdded","input","trim","indexOf","setState","index","onRemoved","filter","_","i","e","keyCode","KEYS","backspace","removeTag","addKeys","enter","preventDefault","addTag","target","onInputChange","readOnly","removeTagIcon","placeholder","id","tagItems","map","tag","v","bind","tagInput","onInputKey","el","classNames","tab","spacebar","left","right","propTypes","arrayOf","string","func","number","bool","oneOfType","element","defaultProps","Tag","onRemoveClick","onRemoveTag","removeIcon","String","fromCharCode","name","isRequired","selectedTag"],"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;;;;;;;;AAEA;;;;AACA;;;;AAEA;;;;;;;;;;;;KAEMA,I;;;AA0CL,gBAAYC,KAAZ,EAAkB;AAAA;;AAAA,2GACXA,KADW;;AAAA,SAzClBC,KAyCkB,GAzCV;AACPC,UAAM,MAAKF,KAAL,CAAWG,WADV;AAEPC,WAAO;AAFA,IAyCU;AAAA;AAEjB;;;;4BAEO;AAAA;;AACP,QAAI,KAAKJ,KAAL,CAAWK,OAAX,IAAsB,CAA1B,EAA4B;AAC3B,SAAI,KAAKJ,KAAL,CAAWC,IAAX,CAAgBI,MAAhB,IAA0B,KAAKN,KAAL,CAAWK,OAAzC,EAAkD;AAClD;;AAHM,iBAKmC,KAAKL,KALxC;AAAA,QAKCO,UALD,UAKCA,UALD;AAAA,QAKaC,QALb,UAKaA,QALb;AAAA,QAKuBC,OALvB,UAKuBA,OALvB;;;AAOP,QAAML,QAAQ,KAAKM,KAAL,CAAWN,KAAX,CAAiBO,IAAjB,EAAd;;AAEA,QAAIJ,UAAJ,EAAe;AACd,SAAI,KAAKN,KAAL,CAAWC,IAAX,CAAgBU,OAAhB,CAAwBR,KAAxB,KAAkC,CAAtC,EAAyC;AACzC;;AAED,SAAKS,QAAL,CAAc;AACbX,wCAAU,KAAKD,KAAL,CAAWC,IAArB,IAA2BE,KAA3B;AADa,KAAd,EAEG,YAAM;AACR,SAAI,OAAOI,QAAP,KAAoB,WAAxB,EAAoC;AACnCA,eAAS,OAAKP,KAAL,CAAWC,IAApB;AACA;;AAED,SAAI,OAAOO,OAAP,KAAmB,WAAvB,EAAmC;AAClCA,cAAQL,KAAR;AACA;;AAED,YAAKM,KAAL,CAAWN,KAAX,GAAmB,EAAnB;AACA,KAZD;AAaA;;;6BAESU,K,EAAM;AAAA;;AAAA,kBACiB,KAAKd,KADtB;AAAA,QACPQ,QADO,WACPA,QADO;AAAA,QACGO,SADH,WACGA,SADH;;AAEf,QAAMX,QAAQ,KAAKH,KAAL,CAAWC,IAAX,CAAgBY,KAAhB,CAAd;;AAEA,SAAKD,QAAL,CAAc;AACbX,WAAM,KAAKD,KAAL,CAAWC,IAAX,CAAgBc,MAAhB,CAAuB,UAACC,CAAD,EAAIC,CAAJ;AAAA,aAAUA,MAAMJ,KAAhB;AAAA,MAAvB;AADO,KAAd,EAEG,YAAM;AACR,SAAI,OAAON,QAAP,KAAoB,WAAxB,EAAoC;AACnCA,eAAS,OAAKP,KAAL,CAAWC,IAApB;AACA;;AAED,SAAI,OAAOa,SAAP,KAAqB,WAAzB,EAAqC;AACpCA,gBAAUX,KAAV;AACA;AACD,KAVD;AAWA;;;8BAEUe,C,EAAE;AACZ,YAAQA,EAAEC,OAAV;AACC,UAAKrB,KAAKsB,IAAL,CAAUC,SAAf;AACC,UAAI,KAAKrB,KAAL,CAAWC,IAAX,CAAgBI,MAAhB,KAA2B,CAA/B,EAAkC;;AAElC,UAAI,KAAKI,KAAL,CAAWN,KAAX,KAAqB,EAAzB,EAA4B;AAC3B,YAAKmB,SAAL,CAAe,KAAKtB,KAAL,CAAWC,IAAX,CAAgBI,MAAhB,GAAyB,CAAxC;AACA;;AAED;;AAED;AACC,UAAI,KAAKI,KAAL,CAAWN,KAAX,KAAqB,EAAzB,EAA6B;;AAE7B,UAAI,KAAKJ,KAAL,CAAWwB,OAAX,CAAmBZ,OAAnB,CAA2BO,EAAEC,OAA7B,MAA0C,CAAC,CAA/C,EAAiD;AAChD,WAAIrB,KAAKsB,IAAL,CAAUI,KAAV,KAAoBN,EAAEC,OAA1B,EAAkC;AACjCD,UAAEO,cAAF;AACA;;AAED,YAAKC,MAAL;AACA;;AAED;AArBF;AAuBA;;;iCAEaR,C,EAAE;AACf,QAAMf,QAAQe,EAAES,MAAF,CAASxB,KAAT,CAAeO,IAAf,EAAd;;AAEA,QAAI,OAAO,KAAKX,KAAL,CAAW6B,aAAlB,KAAoC,WAAxC,EAAoD;AACnD,UAAK7B,KAAL,CAAW6B,aAAX,CAAyBzB,KAAzB;AACA;;AAED,SAAKS,QAAL,CAAc;AACbT;AADa,KAAd;AAGA;;;4BAEO;AAAA;;AAAA,kBAC8C,KAAKJ,KADnD;AAAA,QACC8B,QADD,WACCA,QADD;AAAA,QACWC,aADX,WACWA,aADX;AAAA,QAC0BC,WAD1B,WAC0BA,WAD1B;AAAA,QACuCC,EADvC,WACuCA,EADvC;;;AAGP,QAAMC,WAAW,KAAKjC,KAAL,CAAWC,IAAX,CAAgBiC,GAAhB,CAAoB,UAACC,GAAD,EAAMC,CAAN,EAAY;AAChD,YAAO;AACN,WAAKA,CADC;AAEN,YAAMD,GAFA;AAGN,gBAAUN,QAHJ;AAIN,qBAAeC,aAJT;AAKN,mBAAa,OAAKR,SAAL,CAAee,IAAf,SAA0BD,CAA1B,CALP,GAAP;AAMA,KAPgB,CAAjB;;AASA,QAAME,WAAW,CAAC,KAAKvC,KAAL,CAAW8B,QAAZ,GAChB;AACC,WAAK,MADN;AAEC,WAAK,SAFN;AAGC,mBAAa,KAHd;AAIC,mBAAYE,WAJb;AAKC,kBAAaA,WALd;AAMC,eAAY,KAAKH,aAAjB,MAAY,IAAZ,CAND;AAOC,gBAAa,KAAKW,UAAlB,MAAa,IAAb,CAPD;AAQC,UAAK;AAAA,aAAM,OAAK9B,KAAL,GAAa+B,EAAnB;AAAA,MARN,GADgB,GAUb,IAVJ;;AAYA,QAAMC,aAAaZ,WAAW,sDAAX,GAAoE,uBAAvF;;AAEA,WACC;AAAA;AAAA,OAAK,WAAU,YAAf,EAA4B,IAAIG,EAAhC;AACC;AAAA;AAAA,QAAI,WAAWS,UAAf;AACER;AADF,MADD;AAKEK;AALF,KADD;AASA;;;;;;AApKIxC,K,CAMEsB,I,GAAO;AACbI,SAAO,EADM;AAEbkB,OAAK,CAFQ;AAGbC,YAAU,EAHG;AAIbtB,aAAW,CAJE;AAKbuB,QAAM,EALO;AAMbC,SAAO;AANM,E;AANT/C,K,CAeEgD,S,GAAY;AAClB5C,eAAa,iBAAU6C,OAAV,CAAkB,iBAAUC,MAA5B,CADK;AAElBzC,YAAU,iBAAU0C,IAFF;AAGlBzC,WAAS,iBAAUyC,IAHD;AAIlBnC,aAAW,iBAAUmC,IAJH;AAKlBrB,iBAAe,iBAAUqB,IALP;AAMlB7C,WAAS,iBAAU8C,MAND;AAOlBnB,eAAa,iBAAUiB,MAPL;AAQlBzB,WAAS,iBAAUwB,OAAV,CAAkB,iBAAUG,MAA5B,CARS;AASlBlB,MAAI,iBAAUgB,MATI;AAUlBnB,YAAU,iBAAUsB,IAVF;AAWlB7C,cAAY,iBAAU6C,IAXJ;AAYlBrB,iBAAe,iBAAUsB,SAAV,CAAoB,CAClC,iBAAUJ,MADwB,EAElC,iBAAUK,OAFwB,CAApB;AAZG,E;AAfdvD,K,CAiCEwD,Y,GAAe;AACrBpD,eAAa,EADQ;AAErBE,WAAS,CAAC,CAFW;AAGrB2B,eAAa,WAHQ;AAIrBR,WAAS,CAACzB,KAAKsB,IAAL,CAAUI,KAAX,EAAkB1B,KAAKsB,IAAL,CAAUsB,GAA5B,EAAiC5C,KAAKsB,IAAL,CAAUuB,QAA3C,CAJY;AAKrBrC,cAAY,KALS;AAMrBuB,YAAU;AANW,E;mBAsIR/B,I;;;;;;AC9Kf,gD;;;;;;ACAA;;;;;;AAEA;;;;;;AAEA,KAAMyD,MAAM,SAANA,GAAM,QAAS;AACpB,MAAMC,gBAAgB,SAAhBA,aAAgB,IAAK;AAC1BtC,KAAEO,cAAF;;AAEA1B,SAAM0D,WAAN,CAAkBvC,CAAlB;AACA,GAJD;;AAMA,MAAMwC,aAAa,CAAC3D,MAAM8B,QAAP,GAClB;AAAA;AAAA,KAAG,SAAS2B,aAAZ;AACEzD,SAAM+B,aAAN,IAAsB6B,OAAOC,YAAP,CAAoB,GAApB;AADxB,GADkB,GAIf,IAJJ;;AAMA,SACC;AAAA;AAAA;AACE7D,SAAM8D,IADR;AAEEH;AAFF,GADD;AAMA,EAnBD;;mBAqBeH,G;;;AAEfA,KAAIT,SAAJ,GAAgB;AACfe,QAAM,iBAAUb,MAAV,CAAiBc,UADR;AAEfL,eAAa,iBAAUR,IAFR;AAGfc,eAAa,iBAAUZ,IAHR;AAIftB,YAAU,iBAAUsB,IAJL;AAKfrB,iBAAe,iBAAUsB,SAAV,CAAoB,CAClC,iBAAUJ,MADwB,EAElC,iBAAUK,OAFwB,CAApB;AALA,EAAhB,C;;;;;;AC3BA,0C","file":"react-tags.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[\"Tags\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Tags\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\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 b654d0f9a0effe52f02c","'use strict';\n\nimport React, { Component, PropTypes } from 'react';\nimport Tag from './Tag';\n\nimport '../scss/styles.scss';\n\nclass Tags extends Component {\n\tstate = {\n\t\ttags: this.props.initialTags,\n\t\tvalue: ''\n\t};\n\n\tstatic KEYS = {\n\t\tenter: 13,\n\t\ttab: 9,\n\t\tspacebar: 32,\n\t\tbackspace: 8,\n\t\tleft: 37,\n\t\tright: 39\n\t};\n\n\tstatic propTypes = {\n\t\tinitialTags: PropTypes.arrayOf(PropTypes.string),\n\t\tonChange: PropTypes.func,\n\t\tonAdded: PropTypes.func,\n\t\tonRemoved: PropTypes.func,\n\t\tonInputChange: PropTypes.func,\n\t\tmaxTags: PropTypes.number,\n\t\tplaceholder: PropTypes.string,\n\t\taddKeys: PropTypes.arrayOf(PropTypes.number),\n\t\tid: PropTypes.string,\n\t\treadOnly: PropTypes.bool,\n\t\tuniqueTags: PropTypes.bool,\n\t\tremoveTagIcon: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.element\n\t\t])\n\t};\n\n\tstatic defaultProps = {\n\t\tinitialTags: [],\n\t\tmaxTags: -1,\n\t\tplaceholder: 'Add a tag',\n\t\taddKeys: [Tags.KEYS.enter, Tags.KEYS.tab, Tags.KEYS.spacebar],\n\t\tuniqueTags: false,\n\t\treadOnly: false\n\t};\n\n\tconstructor(props){\n\t\tsuper(props);\n\t}\n\n\taddTag(){\n\t\tif (this.props.maxTags >= 0){\n\t\t\tif (this.state.tags.length >= this.props.maxTags) return;\n\t\t}\n\n\t\tconst { uniqueTags, onChange, onAdded } = this.props;\n\n\t\tconst value = this.input.value.trim();\n\n\t\tif (uniqueTags){\n\t\t\tif (this.state.tags.indexOf(value) >= 0) return;\n\t\t}\n\n\t\tthis.setState({\n\t\t\ttags: [...this.state.tags, value]\n\t\t}, () => {\n\t\t\tif (typeof onChange !== 'undefined'){\n\t\t\t\tonChange(this.state.tags);\n\t\t\t}\n\n\t\t\tif (typeof onAdded !== 'undefined'){\n\t\t\t\tonAdded(value);\n\t\t\t}\n\n\t\t\tthis.input.value = '';\n\t\t});\n\t}\n\n\tremoveTag(index){\n\t\tconst { onChange, onRemoved } = this.props;\n\t\tconst value = this.state.tags[index];\n\n\t\tthis.setState({\n\t\t\ttags: this.state.tags.filter((_, i) => i !== index)\n\t\t}, () => {\n\t\t\tif (typeof onChange !== 'undefined'){\n\t\t\t\tonChange(this.state.tags);\n\t\t\t}\n\n\t\t\tif (typeof onRemoved !== 'undefined'){\n\t\t\t\tonRemoved(value);\n\t\t\t}\n\t\t});\n\t}\n\n\tonInputKey(e){\n\t\tswitch (e.keyCode){\n\t\t\tcase Tags.KEYS.backspace:\n\t\t\t\tif (this.state.tags.length === 0) return;\n\n\t\t\t\tif (this.input.value === ''){\n\t\t\t\t\tthis.removeTag(this.state.tags.length - 1);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tif (this.input.value === '') return;\n\n\t\t\t\tif (this.props.addKeys.indexOf(e.keyCode) !== -1){\n\t\t\t\t\tif (Tags.KEYS.enter !== e.keyCode){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.addTag();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonInputChange(e){\n\t\tconst value = e.target.value.trim();\n\n\t\tif (typeof this.props.onInputChange !== 'undefined'){\n\t\t\tthis.props.onInputChange(value);\n\t\t}\n\n\t\tthis.setState({\n\t\t\tvalue\n\t\t});\n\t}\n\n\trender(){\n\t\tconst { readOnly, removeTagIcon, placeholder, id } = this.props;\n\n\t\tconst tagItems = this.state.tags.map((tag, v) => {\n\t\t\treturn ;\n\t\t});\n\n\t\tconst tagInput = !this.props.readOnly ? (\n\t\t\t this.input = el} />\n\t\t) : null;\n\n\t\tconst classNames = readOnly ? 'react-tags__container react-tags__container_readonly' : 'react-tags__container';\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
    \n\t\t\t\t\t{tagItems}\n\t\t\t\t
\n\n\t\t\t\t{tagInput}\n\t\t\t
\n\t\t);\n\t}\n}\n\nexport default Tags;\n\n\n\n// WEBPACK FOOTER //\n// ./src/component/js/Tags.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 1\n// module chunks = 0","'use strict';\n\nimport React, { PropTypes } from 'react';\n\nconst Tag = props => {\n\tconst onRemoveClick = e => {\n\t\te.preventDefault();\n\n\t\tprops.onRemoveTag(e);\n\t};\n\n\tconst removeIcon = !props.readOnly ? (\n\t\t\n\t\t\t{props.removeTagIcon|| String.fromCharCode(215)}\n\t\t\n\t) : null;\n\n\treturn (\n\t\t
  • \n\t\t\t{props.name}\n\t\t\t{removeIcon}\n\t\t
  • \n\t);\n};\n\nexport default Tag;\n\nTag.propTypes = {\n\tname: PropTypes.string.isRequired,\n\tonRemoveTag: PropTypes.func,\n\tselectedTag: PropTypes.bool,\n\treadOnly: PropTypes.bool,\n\tremoveTagIcon: PropTypes.oneOfType([\n\t\tPropTypes.string,\n\t\tPropTypes.element\n\t])\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/component/js/Tag.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/component/scss/styles.scss\n// module id = 3\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1cf9c513f171d9c007ac","webpack:///./src/component/js/Tags.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./src/component/js/Tag.js","webpack:///./src/component/scss/styles.scss"],"names":["Tags","props","state","tags","initialTags","value","maxTags","length","uniqueTags","onChange","onAdded","input","trim","indexOf","setState","index","onRemoved","filter","_","i","e","keyCode","KEYS","backspace","removeTag","addKeys","enter","preventDefault","addTag","target","onInputChange","readOnly","removeTagIcon","placeholder","id","tagItems","map","tag","v","bind","tagInput","onInputKey","el","classNames","tab","spacebar","left","right","propTypes","arrayOf","string","func","number","bool","oneOfType","element","defaultProps","Tag","onRemoveClick","onRemoveTag","removeIcon","String","fromCharCode","name","isRequired","selectedTag"],"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;;;;;;;;AAEA;;;;AACA;;;;AAEA;;;;;;;;;;;;KAEMA,I;;;AA0CL,gBAAYC,KAAZ,EAAkB;AAAA;;AAAA,2GACXA,KADW;;AAAA,SAzClBC,KAyCkB,GAzCV;AACPC,UAAM,MAAKF,KAAL,CAAWG,WADV;AAEPC,WAAO;AAFA,IAyCU;AAAA;AAEjB;;;;4BAEO;AAAA;;AACP,QAAI,KAAKJ,KAAL,CAAWK,OAAX,IAAsB,CAA1B,EAA4B;AAC3B,SAAI,KAAKJ,KAAL,CAAWC,IAAX,CAAgBI,MAAhB,IAA0B,KAAKN,KAAL,CAAWK,OAAzC,EAAkD;AAClD;;AAHM,iBAKmC,KAAKL,KALxC;AAAA,QAKCO,UALD,UAKCA,UALD;AAAA,QAKaC,QALb,UAKaA,QALb;AAAA,QAKuBC,OALvB,UAKuBA,OALvB;;;AAOP,QAAML,QAAQ,KAAKM,KAAL,CAAWN,KAAX,CAAiBO,IAAjB,EAAd;;AAEA,QAAIJ,UAAJ,EAAe;AACd,SAAI,KAAKN,KAAL,CAAWC,IAAX,CAAgBU,OAAhB,CAAwBR,KAAxB,KAAkC,CAAtC,EAAyC;AACzC;;AAED,SAAKS,QAAL,CAAc;AACbX,wCAAU,KAAKD,KAAL,CAAWC,IAArB,IAA2BE,KAA3B;AADa,KAAd,EAEG,YAAM;AACR,SAAI,OAAOI,QAAP,KAAoB,WAAxB,EAAoC;AACnCA,eAAS,OAAKP,KAAL,CAAWC,IAApB;AACA;;AAED,SAAI,OAAOO,OAAP,KAAmB,WAAvB,EAAmC;AAClCA,cAAQL,KAAR;AACA;;AAED,YAAKM,KAAL,CAAWN,KAAX,GAAmB,EAAnB;AACA,KAZD;AAaA;;;6BAESU,K,EAAM;AAAA;;AAAA,kBACiB,KAAKd,KADtB;AAAA,QACPQ,QADO,WACPA,QADO;AAAA,QACGO,SADH,WACGA,SADH;;AAEf,QAAMX,QAAQ,KAAKH,KAAL,CAAWC,IAAX,CAAgBY,KAAhB,CAAd;;AAEA,SAAKD,QAAL,CAAc;AACbX,WAAM,KAAKD,KAAL,CAAWC,IAAX,CAAgBc,MAAhB,CAAuB,UAACC,CAAD,EAAIC,CAAJ;AAAA,aAAUA,MAAMJ,KAAhB;AAAA,MAAvB;AADO,KAAd,EAEG,YAAM;AACR,SAAI,OAAON,QAAP,KAAoB,WAAxB,EAAoC;AACnCA,eAAS,OAAKP,KAAL,CAAWC,IAApB;AACA;;AAED,SAAI,OAAOa,SAAP,KAAqB,WAAzB,EAAqC;AACpCA,gBAAUX,KAAV;AACA;AACD,KAVD;AAWA;;;8BAEUe,C,EAAE;AACZ,YAAQA,EAAEC,OAAV;AACC,UAAKrB,KAAKsB,IAAL,CAAUC,SAAf;AACC,UAAI,KAAKrB,KAAL,CAAWC,IAAX,CAAgBI,MAAhB,KAA2B,CAA/B,EAAkC;;AAElC,UAAI,KAAKI,KAAL,CAAWN,KAAX,KAAqB,EAAzB,EAA4B;AAC3B,YAAKmB,SAAL,CAAe,KAAKtB,KAAL,CAAWC,IAAX,CAAgBI,MAAhB,GAAyB,CAAxC;AACA;;AAED;;AAED;AACC,UAAI,KAAKI,KAAL,CAAWN,KAAX,KAAqB,EAAzB,EAA6B;;AAE7B,UAAI,KAAKJ,KAAL,CAAWwB,OAAX,CAAmBZ,OAAnB,CAA2BO,EAAEC,OAA7B,MAA0C,CAAC,CAA/C,EAAiD;AAChD,WAAIrB,KAAKsB,IAAL,CAAUI,KAAV,KAAoBN,EAAEC,OAA1B,EAAkC;AACjCD,UAAEO,cAAF;AACA;;AAED,YAAKC,MAAL;AACA;;AAED;AArBF;AAuBA;;;iCAEaR,C,EAAE;AACf,QAAMf,QAAQe,EAAES,MAAF,CAASxB,KAAT,CAAeO,IAAf,EAAd;;AAEA,QAAI,OAAO,KAAKX,KAAL,CAAW6B,aAAlB,KAAoC,WAAxC,EAAoD;AACnD,UAAK7B,KAAL,CAAW6B,aAAX,CAAyBzB,KAAzB;AACA;;AAED,SAAKS,QAAL,CAAc;AACbT;AADa,KAAd;AAGA;;;4BAEO;AAAA;;AAAA,kBAC8C,KAAKJ,KADnD;AAAA,QACC8B,QADD,WACCA,QADD;AAAA,QACWC,aADX,WACWA,aADX;AAAA,QAC0BC,WAD1B,WAC0BA,WAD1B;AAAA,QACuCC,EADvC,WACuCA,EADvC;;;AAGP,QAAMC,WAAW,KAAKjC,KAAL,CAAWC,IAAX,CAAgBiC,GAAhB,CAAoB,UAACC,GAAD,EAAMC,CAAN,EAAY;AAChD,YAAO;AACN,WAAKA,CADC;AAEN,YAAMD,GAFA;AAGN,gBAAUN,QAHJ;AAIN,qBAAeC,aAJT;AAKN,mBAAa,OAAKR,SAAL,CAAee,IAAf,SAA0BD,CAA1B,CALP,GAAP;AAMA,KAPgB,CAAjB;;AASA,QAAME,WAAW,CAAC,KAAKvC,KAAL,CAAW8B,QAAZ,GAChB;AACC,WAAK,MADN;AAEC,WAAK,SAFN;AAGC,mBAAa,KAHd;AAIC,mBAAYE,WAJb;AAKC,kBAAaA,WALd;AAMC,eAAY,KAAKH,aAAjB,MAAY,IAAZ,CAND;AAOC,gBAAa,KAAKW,UAAlB,MAAa,IAAb,CAPD;AAQC,UAAK;AAAA,aAAM,OAAK9B,KAAL,GAAa+B,EAAnB;AAAA,MARN,GADgB,GAUb,IAVJ;;AAYA,QAAMC,aAAaZ,WAAW,sDAAX,GAAoE,uBAAvF;;AAEA,WACC;AAAA;AAAA,OAAK,WAAU,YAAf,EAA4B,IAAIG,EAAhC;AACC;AAAA;AAAA,QAAI,WAAWS,UAAf;AACER;AADF,MADD;AAKEK;AALF,KADD;AASA;;;;;;AApKIxC,K,CAMEsB,I,GAAO;AACbI,SAAO,EADM;AAEbkB,OAAK,CAFQ;AAGbC,YAAU,EAHG;AAIbtB,aAAW,CAJE;AAKbuB,QAAM,EALO;AAMbC,SAAO;AANM,E;AANT/C,K,CAeEgD,S,GAAY;AAClB5C,eAAa,iBAAU6C,OAAV,CAAkB,iBAAUC,MAA5B,CADK;AAElBzC,YAAU,iBAAU0C,IAFF;AAGlBzC,WAAS,iBAAUyC,IAHD;AAIlBnC,aAAW,iBAAUmC,IAJH;AAKlBrB,iBAAe,iBAAUqB,IALP;AAMlB7C,WAAS,iBAAU8C,MAND;AAOlBnB,eAAa,iBAAUiB,MAPL;AAQlBzB,WAAS,iBAAUwB,OAAV,CAAkB,iBAAUG,MAA5B,CARS;AASlBlB,MAAI,iBAAUgB,MATI;AAUlBnB,YAAU,iBAAUsB,IAVF;AAWlB7C,cAAY,iBAAU6C,IAXJ;AAYlBrB,iBAAe,iBAAUsB,SAAV,CAAoB,CAClC,iBAAUJ,MADwB,EAElC,iBAAUK,OAFwB,CAApB;AAZG,E;AAfdvD,K,CAiCEwD,Y,GAAe;AACrBpD,eAAa,EADQ;AAErBE,WAAS,CAAC,CAFW;AAGrB2B,eAAa,WAHQ;AAIrBR,WAAS,CAACzB,KAAKsB,IAAL,CAAUI,KAAX,EAAkB1B,KAAKsB,IAAL,CAAUsB,GAA5B,EAAiC5C,KAAKsB,IAAL,CAAUuB,QAA3C,CAJY;AAKrBrC,cAAY,KALS;AAMrBuB,YAAU;AANW,E;mBAsIR/B,I;;;;;;AC9Kf,gD;;;;;;ACAA;;;;;;AAEA;;;;;;AAEA,KAAMyD,MAAM,SAANA,GAAM,QAAS;AACpB,MAAMC,gBAAgB,SAAhBA,aAAgB,IAAK;AAC1BtC,KAAEO,cAAF;;AAEA1B,SAAM0D,WAAN,CAAkBvC,CAAlB;AACA,GAJD;;AAMA,MAAMwC,aAAa,CAAC3D,MAAM8B,QAAP,GAClB;AAAA;AAAA,KAAG,SAAS2B,aAAZ;AACEzD,SAAM+B,aAAN,IAAsB6B,OAAOC,YAAP,CAAoB,GAApB;AADxB,GADkB,GAIf,IAJJ;;AAMA,SACC;AAAA;AAAA;AACE7D,SAAM8D,IADR;AAEEH;AAFF,GADD;AAMA,EAnBD;;mBAqBeH,G;;;AAEfA,KAAIT,SAAJ,GAAgB;AACfe,QAAM,iBAAUb,MAAV,CAAiBc,UADR;AAEfL,eAAa,iBAAUR,IAFR;AAGfc,eAAa,iBAAUZ,IAHR;AAIftB,YAAU,iBAAUsB,IAJL;AAKfrB,iBAAe,iBAAUsB,SAAV,CAAoB,CAClC,iBAAUJ,MADwB,EAElC,iBAAUK,OAFwB,CAApB;AALA,EAAhB,C;;;;;;AC3BA,0C","file":"react-tags.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[\"Tags\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Tags\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\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 1cf9c513f171d9c007ac","'use strict';\n\nimport React, { Component, PropTypes } from 'react';\nimport Tag from './Tag';\n\nimport '../scss/styles.scss';\n\nclass Tags extends Component {\n\tstate = {\n\t\ttags: this.props.initialTags,\n\t\tvalue: ''\n\t};\n\n\tstatic KEYS = {\n\t\tenter: 13,\n\t\ttab: 9,\n\t\tspacebar: 32,\n\t\tbackspace: 8,\n\t\tleft: 37,\n\t\tright: 39\n\t};\n\n\tstatic propTypes = {\n\t\tinitialTags: PropTypes.arrayOf(PropTypes.string),\n\t\tonChange: PropTypes.func,\n\t\tonAdded: PropTypes.func,\n\t\tonRemoved: PropTypes.func,\n\t\tonInputChange: PropTypes.func,\n\t\tmaxTags: PropTypes.number,\n\t\tplaceholder: PropTypes.string,\n\t\taddKeys: PropTypes.arrayOf(PropTypes.number),\n\t\tid: PropTypes.string,\n\t\treadOnly: PropTypes.bool,\n\t\tuniqueTags: PropTypes.bool,\n\t\tremoveTagIcon: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.element\n\t\t])\n\t};\n\n\tstatic defaultProps = {\n\t\tinitialTags: [],\n\t\tmaxTags: -1,\n\t\tplaceholder: 'Add a tag',\n\t\taddKeys: [Tags.KEYS.enter, Tags.KEYS.tab, Tags.KEYS.spacebar],\n\t\tuniqueTags: false,\n\t\treadOnly: false\n\t};\n\n\tconstructor(props){\n\t\tsuper(props);\n\t}\n\n\taddTag(){\n\t\tif (this.props.maxTags >= 0){\n\t\t\tif (this.state.tags.length >= this.props.maxTags) return;\n\t\t}\n\n\t\tconst { uniqueTags, onChange, onAdded } = this.props;\n\n\t\tconst value = this.input.value.trim();\n\n\t\tif (uniqueTags){\n\t\t\tif (this.state.tags.indexOf(value) >= 0) return;\n\t\t}\n\n\t\tthis.setState({\n\t\t\ttags: [...this.state.tags, value]\n\t\t}, () => {\n\t\t\tif (typeof onChange !== 'undefined'){\n\t\t\t\tonChange(this.state.tags);\n\t\t\t}\n\n\t\t\tif (typeof onAdded !== 'undefined'){\n\t\t\t\tonAdded(value);\n\t\t\t}\n\n\t\t\tthis.input.value = '';\n\t\t});\n\t}\n\n\tremoveTag(index){\n\t\tconst { onChange, onRemoved } = this.props;\n\t\tconst value = this.state.tags[index];\n\n\t\tthis.setState({\n\t\t\ttags: this.state.tags.filter((_, i) => i !== index)\n\t\t}, () => {\n\t\t\tif (typeof onChange !== 'undefined'){\n\t\t\t\tonChange(this.state.tags);\n\t\t\t}\n\n\t\t\tif (typeof onRemoved !== 'undefined'){\n\t\t\t\tonRemoved(value);\n\t\t\t}\n\t\t});\n\t}\n\n\tonInputKey(e){\n\t\tswitch (e.keyCode){\n\t\t\tcase Tags.KEYS.backspace:\n\t\t\t\tif (this.state.tags.length === 0) return;\n\n\t\t\t\tif (this.input.value === ''){\n\t\t\t\t\tthis.removeTag(this.state.tags.length - 1);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tif (this.input.value === '') return;\n\n\t\t\t\tif (this.props.addKeys.indexOf(e.keyCode) !== -1){\n\t\t\t\t\tif (Tags.KEYS.enter !== e.keyCode){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.addTag();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonInputChange(e){\n\t\tconst value = e.target.value.trim();\n\n\t\tif (typeof this.props.onInputChange !== 'undefined'){\n\t\t\tthis.props.onInputChange(value);\n\t\t}\n\n\t\tthis.setState({\n\t\t\tvalue\n\t\t});\n\t}\n\n\trender(){\n\t\tconst { readOnly, removeTagIcon, placeholder, id } = this.props;\n\n\t\tconst tagItems = this.state.tags.map((tag, v) => {\n\t\t\treturn ;\n\t\t});\n\n\t\tconst tagInput = !this.props.readOnly ? (\n\t\t\t this.input = el} />\n\t\t) : null;\n\n\t\tconst classNames = readOnly ? 'react-tags__container react-tags__container_readonly' : 'react-tags__container';\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{tagItems}\n\t\t\t\t
    \n\n\t\t\t\t{tagInput}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default Tags;\n\n\n\n// WEBPACK FOOTER //\n// ./src/component/js/Tags.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 1\n// module chunks = 0","'use strict';\n\nimport React, { PropTypes } from 'react';\n\nconst Tag = props => {\n\tconst onRemoveClick = e => {\n\t\te.preventDefault();\n\n\t\tprops.onRemoveTag(e);\n\t};\n\n\tconst removeIcon = !props.readOnly ? (\n\t\t\n\t\t\t{props.removeTagIcon|| String.fromCharCode(215)}\n\t\t\n\t) : null;\n\n\treturn (\n\t\t
  • \n\t\t\t{props.name}\n\t\t\t{removeIcon}\n\t\t
  • \n\t);\n};\n\nexport default Tag;\n\nTag.propTypes = {\n\tname: PropTypes.string.isRequired,\n\tonRemoveTag: PropTypes.func,\n\tselectedTag: PropTypes.bool,\n\treadOnly: PropTypes.bool,\n\tremoveTagIcon: PropTypes.oneOfType([\n\t\tPropTypes.string,\n\t\tPropTypes.element\n\t])\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/component/js/Tag.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/component/scss/styles.scss\n// module id = 3\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/styles.css b/dist/styles.css index 79a68b8..9c47945 100644 --- a/dist/styles.css +++ b/dist/styles.css @@ -1,7 +1,6 @@ .react-tags input, .react-tags__container > li { font-size: 12px; height: 26px; - line-height: 26px; color: #626166; border-radius: 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -37,7 +36,6 @@ background: #FFF; border: 1px solid #D9D8DD; height: 24px; - line-height: 24px; margin-top: 5px; } .react-tags input::-webkit-input-placeholder { color: rgba(98, 97, 102, 0.5); } @@ -45,6 +43,8 @@ color: rgba(98, 97, 102, 0.5); } .react-tags input:-ms-input-placeholder { color: rgba(98, 97, 102, 0.5); } + .react-tags input::-ms-clear { + display: none; } .react-tags input:focus { outline: none; border-color: #b1afb9; } @@ -56,6 +56,9 @@ list-style: none; } .react-tags__container > li { + line-height: 26px; + -webkit-transform: translate3d(0, 0, 0); + -webkit-font-smoothing: antialiased; -webkit-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1); -moz-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1); -o-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1); diff --git a/dist/styles.css.map b/dist/styles.css.map index 8de0a1b..98d5383 100644 --- a/dist/styles.css.map +++ b/dist/styles.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack:///src/component/scss/src/component/scss/_base.scss","webpack:///webpack:///src/component/scss/src/component/scss/_variables.scss","webpack:///webpack:///src/component/scss/src/component/scss/_colorpalette.scss","webpack:///webpack:///src/component/scss/src/component/scss/_input.scss","webpack:///webpack:///src/component/scss/src/component/scss/_tags.scss","webpack:///webpack:///src/component/scss/src/component/scss/_tag.scss"],"names":[],"mappings":"AAIA;EACC,gBCEmC;EDDnC,aCAmC;EDCnC,kBCDmC;EDEnC,eEFsB;EFGtB,oBCDmC;EDEnC,4DCC6E;EDA7E,sBAAsB;EACtB,eAAe,EACf;;AAED;EACC;IACC,wCAA8B;EAG/B;IACC,wCAA8B;;AAGhC;EACC;IACC,uCAA2B;EAG5B;IACC,qCAA2B;;AAG7B;EACC;IACC,qCAAyB;EAG1B;IACC,mCAAyB;;AAG3B;EACC;IACC,kCAAsB;EAGvB;IACC,gCAAsB;;AG5CxB;EAME,mCAAmC;EACnC,iBDPkB;ECQlB,0BDPqB;ECQrB,aALyB;EAMzB,kBANyB;EAOzB,gBFLiC,EEuBjC;EA7BF;IAcG,8BDZoB,ECapB;EAfH;IAkBG,8BDhBoB,ECiBpB;EAnBH;IAsBG,8BDpBoB,ECqBpB;EAvBH;IA0BG,cAAc;IACd,sBFNmC,EEOnC;;AC5BH;EAEE,gBAAgB;EAChB,UAAU;EACV,WAAW;EACX,iBAAiB,EACjB;;ACNF;EAKG,kEJUyD;EITzD,+DJSyD;EIRzD,6DJQyD;EIPzD,0DJOyD;EINzD,oBHRoB;EGSpB,oBAA6C;EAC7C,iCAAiC;EACjC,gBAAgB,EAMhB;EAlBH;IAgBI,oBJLkC,EIMlC;;AAjBJ;EAqBG,gBJlBiC;EImBjC,YHnBiB;EGoBjB,gBAAgB;EAChB,4BAA4B;EAC5B,sBAAsB;EACtB,iBAAiB;EACjB,sBAAsB,EAKtB;EAhCH;IA8BI,eJhBmC,EIiBnC;;AA/BJ;EAmCG,mBAAmB,EACnB;;AApCH;EAuCG,qBAAqB,EACrB","file":"styles.css","sourcesContent":["//**\n// Tags base\n//**\n\n%tags-ui-base {\n\tfont-size: $tag-base-font-size;\n\theight: $tag-base-height;\n\tline-height: $tag-base-height;\n\tcolor: $tag-base-font-color;\n\tborder-radius: $tag-base-border-radius;\n\tfont-family: $tag-base-font-family;\n\tdisplay: inline-block;\n\tpadding: 0 9px;\n}\n\n@-webkit-keyframes slide-left {\n\t0% {\n\t\t-webkit-transform: translate3d(8, 0, 0);\n\t}\n\n\t100% {\n\t\t-webkit-transform: translate3d(0, 0, 0);\n\t}\n}\n@-moz-keyframes slide-left {\n\t0% {\n\t\t-moz-transform: translate3d(8px, 0, 0);\n\t}\n\n\t100% {\n\t\t-moz-transform: translate3d(0, 0, 0);\n\t}\n}\n@-o-keyframes slide-left {\n\t0% {\n\t\t-o-transform: translate3d(8px, 0, 0);\n\t}\n\n\t100% {\n\t\t-o-transform: translate3d(0, 0, 0);\n\t}\n}\n@keyframes slide-left {\n\t0% {\n\t\ttransform: translate3d(8px, 0, 0);\n\t}\n\n\t100% {\n\t\ttransform: translate3d(0, 0, 0);\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_base.scss","//**\n// Tags variables\n//-- Variables may be overridden\n//**\n\n//-- Global UI\n$tag-base-height: 26px !default;\n$tag-base-font-size: 12px !default;\n$tag-base-border-radius: 12px !default;\n$tag-base-font-color: $dark-gray !default;\n$tag-base-margin: 5px !default;\n$tag-base-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n\n//-- Tags\n$tag-background-color: $light-gray !default;\n$tag-background-hover-color: darken($light-gray, 6%) !default;\n$tag-remove-color: $black !default;\n$tag-remove-font-size: $tag-base-font-size !default;\n$tag-remove-hover-color: lighten($tag-remove-color, 40%) !default;\n$tag-intro-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1) !default;\n\n//-- Input\n$tag-input-bg-color: $white !default;\n$tag-input-border: 1px solid $light-gray !default;\n$tag-input-placeholder-color: rgba($dark-gray, 0.5) !default;\n$tag-input-border-focus-color: darken($light-gray, 15%) !default;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_variables.scss","//**\n// Tags colors\n//**\n\n$white: #FFF;\n$light-gray: #D9D8DD;\n$dark-gray: #626166;\n$black: #000;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_colorpalette.scss","//**\n// Tags input\n//**\n\n.react-tags {\n\tinput {\n\t\t@extend %tags-ui-base;\n\n\t\t$height: $tag-base-height - 2;\n\n\t\ttransition: border-color 0.3s ease;\n\t\tbackground: $tag-input-bg-color;\n\t\tborder: $tag-input-border;\n\t\theight: $height;\n\t\tline-height: $height;\n\t\tmargin-top: $tag-base-margin;\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tcolor: $tag-input-placeholder-color;\n\t\t}\n\n\t\t&::-moz-placeholder {\n\t\t\tcolor: $tag-input-placeholder-color;\n\t\t}\n\n\t\t&:-ms-input-placeholder {\n\t\t\tcolor: $tag-input-placeholder-color;\n\t\t}\n\n\t\t&:focus {\n\t\t\toutline: none;\n\t\t\tborder-color: $tag-input-border-focus-color;\n\t\t}\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_input.scss","//**\n// Tags list\n//**\n\n.react-tags {\n\t&__container {\n\t\tdisplay: inline;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tlist-style: none;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_tags.scss","//**\n// Tags tags\n//**\n\n.react-tags {\n\t&__container {\n\t\t> li {\n\t\t\t@extend %tags-ui-base;\n\n\t\t\t-webkit-animation: $tag-intro-animation;\n\t\t\t-moz-animation: $tag-intro-animation;\n\t\t\t-o-animation: $tag-intro-animation;\n\t\t\tanimation: $tag-intro-animation;\n\t\t\tbackground: $tag-background-color;\n\t\t\tmargin: $tag-base-margin $tag-base-margin 0 0;\n\t\t\ttransition: background 0.3s ease;\n\t\t\tcursor: default;\n\n\t\t\t&:hover,\n\t\t\t&.active {\n\t\t\t\tbackground: $tag-background-hover-color;\n\t\t\t}\n\t\t}\n\n\t\ta {\n\t\t\tfont-size: $tag-remove-font-size;\n\t\t\tcolor: $tag-remove-color;\n\t\t\tcursor: pointer;\n\t\t\ttransition: color 0.3s ease;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-left: 7px;\n\t\t\ttext-decoration: none;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: $tag-remove-hover-color;\n\t\t\t}\n\t\t}\n\n\t\ti {\n\t\t\tfont-style: normal;\n\t\t}\n\n\t\t&_readonly {\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_tag.scss"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack:///src/component/scss/src/component/scss/_base.scss","webpack:///webpack:///src/component/scss/src/component/scss/_variables.scss","webpack:///webpack:///src/component/scss/src/component/scss/_colorpalette.scss","webpack:///webpack:///src/component/scss/src/component/scss/_input.scss","webpack:///webpack:///src/component/scss/src/component/scss/_tags.scss","webpack:///webpack:///src/component/scss/src/component/scss/_tag.scss"],"names":[],"mappings":"AAIA;EACC,gBCEmC;EDDnC,aCAmC;EDCnC,eEDsB;EFEtB,oBCAmC;EDCnC,4DCE6E;EDD7E,sBAAqB;EACrB,eAAc,EACd;;AAED;EACC;IACC,wCAAuC;EAGxC;IACC,wCAAuC;;AAGzC;EACC;IACC,uCAAsC;EAGvC;IACC,qCAAoC;;AAGtC;EACC;IACC,qCAAoC;EAGrC;IACC,mCAAkC;;AAGpC;EACC;IACC,kCAAiC;EAGlC;IACC,gCAA+B;;AG3CjC;EAME,mCAAkC;EAClC,iBDPkB;ECQlB,0BDPqB;ECQrB,aAL6B;EAM7B,gBFJiC,EE0BjC;EAhCF;IAaG,8BDXoB,ECYpB;EAdH;IAiBG,8BDfoB,ECgBpB;EAlBH;IAqBG,8BDnBoB,ECoBpB;EAtBH;IAyBG,cAAa,EACb;EA1BH;IA6BG,cAAa;IACb,sBFTqD,EEUrD;;AC9BF;EACC,gBAAe;EACf,UAAS;EACT,WAAU;EACV,iBAAgB,EAChB;;ACLD;EAIE,kBJHiC;EIIjC,wCAAuC;EACvC,oCAAmC;EACnC,kEJO2E;EIN3E,+DJM2E;EIL3E,6DJK2E;EIJ3E,0DJI2E;EIH3E,oBHXoB;EGYpB,oBAA6C;EAC7C,iCAAgC;EAChC,gBAAe,EAMf;EApBF;IAkBG,oBJRmD,EISnD;;AAnBH;EAuBE,gBJrBiC;EIsBjC,YHtBiB;EGuBjB,gBAAe;EACf,4BAA2B;EAC3B,sBAAqB;EACrB,iBAAgB;EAChB,sBAAqB,EAKrB;EAlCF;IAgCG,eJnB2D,EIoB3D;;AAjCH;EAqCE,mBAAkB,EAClB;;AAED;EACC,qBAAoB,EACpB","file":"styles.css","sourcesContent":["//**\n// Tags base\n//**\n\n%tags-ui-base {\n\tfont-size: $tag-base-font-size;\n\theight: $tag-base-height;\n\tcolor: $tag-base-font-color;\n\tborder-radius: $tag-base-border-radius;\n\tfont-family: $tag-base-font-family;\n\tdisplay: inline-block;\n\tpadding: 0 9px;\n}\n\n@-webkit-keyframes slide-left {\n\t0% {\n\t\t-webkit-transform: translate3d(8, 0, 0);\n\t}\n\n\t100% {\n\t\t-webkit-transform: translate3d(0, 0, 0);\n\t}\n}\n@-moz-keyframes slide-left {\n\t0% {\n\t\t-moz-transform: translate3d(8px, 0, 0);\n\t}\n\n\t100% {\n\t\t-moz-transform: translate3d(0, 0, 0);\n\t}\n}\n@-o-keyframes slide-left {\n\t0% {\n\t\t-o-transform: translate3d(8px, 0, 0);\n\t}\n\n\t100% {\n\t\t-o-transform: translate3d(0, 0, 0);\n\t}\n}\n@keyframes slide-left {\n\t0% {\n\t\ttransform: translate3d(8px, 0, 0);\n\t}\n\n\t100% {\n\t\ttransform: translate3d(0, 0, 0);\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_base.scss","//**\n// Tags variables\n//-- Variables may be overridden\n//**\n\n//-- Global UI\n$tag-base-height: 26px !default;\n$tag-base-font-size: 12px !default;\n$tag-base-border-radius: 12px !default;\n$tag-base-font-color: $dark-gray !default;\n$tag-base-margin: 5px !default;\n$tag-base-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n\n//-- Tags\n$tag-background-color: $light-gray !default;\n$tag-background-hover-color: darken($light-gray, 6%) !default;\n$tag-remove-color: $black !default;\n$tag-remove-font-size: $tag-base-font-size !default;\n$tag-remove-hover-color: lighten($tag-remove-color, 40%) !default;\n$tag-intro-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1) !default;\n\n//-- Input\n$tag-input-bg-color: $white !default;\n$tag-input-border: 1px solid $light-gray !default;\n$tag-input-placeholder-color: rgba($dark-gray, 0.5) !default;\n$tag-input-border-focus-color: darken($light-gray, 15%) !default;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_variables.scss","//**\n// Tags colors\n//**\n\n$white: #FFF;\n$light-gray: #D9D8DD;\n$dark-gray: #626166;\n$black: #000;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_colorpalette.scss","//**\n// Tags input\n//**\n\n.react-tags {\n\tinput {\n\t\t@extend %tags-ui-base;\n\n\t\t$height: $tag-base-height - 2;\n\n\t\ttransition: border-color 0.3s ease;\n\t\tbackground: $tag-input-bg-color;\n\t\tborder: $tag-input-border;\n\t\theight: $height;\n\t\tmargin-top: $tag-base-margin;\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tcolor: $tag-input-placeholder-color;\n\t\t}\n\n\t\t&::-moz-placeholder {\n\t\t\tcolor: $tag-input-placeholder-color;\n\t\t}\n\n\t\t&:-ms-input-placeholder {\n\t\t\tcolor: $tag-input-placeholder-color;\n\t\t}\n\n\t\t&::-ms-clear {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\toutline: none;\n\t\t\tborder-color: $tag-input-border-focus-color;\n\t\t}\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_input.scss","//**\n// Tags list\n//**\n\n.react-tags {\n\t&__container {\n\t\tdisplay: inline;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tlist-style: none;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_tags.scss","//**\n// Tags tags\n//**\n\n.react-tags {\n\t&__container {\n\t\t> li {\n\t\t\t@extend %tags-ui-base;\n\n\t\t\tline-height: $tag-base-height;\n\t\t\t-webkit-transform: translate3d(0, 0, 0);\n\t\t\t-webkit-font-smoothing: antialiased;\n\t\t\t-webkit-animation: $tag-intro-animation;\n\t\t\t-moz-animation: $tag-intro-animation;\n\t\t\t-o-animation: $tag-intro-animation;\n\t\t\tanimation: $tag-intro-animation;\n\t\t\tbackground: $tag-background-color;\n\t\t\tmargin: $tag-base-margin $tag-base-margin 0 0;\n\t\t\ttransition: background 0.3s ease;\n\t\t\tcursor: default;\n\n\t\t\t&:hover,\n\t\t\t&.active {\n\t\t\t\tbackground: $tag-background-hover-color;\n\t\t\t}\n\t\t}\n\n\t\ta {\n\t\t\tfont-size: $tag-remove-font-size;\n\t\t\tcolor: $tag-remove-color;\n\t\t\tcursor: pointer;\n\t\t\ttransition: color 0.3s ease;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-left: 7px;\n\t\t\ttext-decoration: none;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: $tag-remove-hover-color;\n\t\t\t}\n\t\t}\n\n\t\ti {\n\t\t\tfont-style: normal;\n\t\t}\n\n\t\t&_readonly {\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/component/scss/src/component/scss/_tag.scss"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/bundle.js b/docs/bundle.js index 43fb2e1..9b78f9e 100644 --- a/docs/bundle.js +++ b/docs/bundle.js @@ -50,7 +50,30 @@ return /******/ (function(modules) { // webpackBootstrap /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ -/******/ ([ +/******/ ((function(modules) { + // Check all modules for deduplicated modules + for(var i in modules) { + if(Object.prototype.hasOwnProperty.call(modules, i)) { + switch(typeof modules[i]) { + case "function": break; + case "object": + // Module can be created from a template + modules[i] = (function(_m) { + var args = _m.slice(1), fn = modules[_m[0]]; + return function (a,b,c) { + fn.apply(this, [a,b,c].concat(args)); + }; + }(modules[i])); + break; + default: + // Module is a copy of another module + modules[i] = modules[modules[i]]; + break; + } + } + } + return modules; +}([ /* 0 */ /***/ function(module, exports, __webpack_require__) { @@ -62,9 +85,9 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); - var _reactDom = __webpack_require__(34); + var _reactDom = __webpack_require__(32); - var _Tags = __webpack_require__(172); + var _Tags = __webpack_require__(178); var _Tags2 = _interopRequireDefault(_Tags); @@ -336,7 +359,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 React */ 'use strict'; @@ -344,23 +366,23 @@ return /******/ (function(modules) { // webpackBootstrap var _assign = __webpack_require__(3); var ReactChildren = __webpack_require__(4); - var ReactComponent = __webpack_require__(16); - var ReactPureComponent = __webpack_require__(19); - var ReactClass = __webpack_require__(20); - var ReactDOMFactories = __webpack_require__(25); + var ReactComponent = __webpack_require__(17); + var ReactPureComponent = __webpack_require__(20); + var ReactClass = __webpack_require__(21); + var ReactDOMFactories = __webpack_require__(23); var ReactElement = __webpack_require__(8); - var ReactPropTypes = __webpack_require__(31); - var ReactVersion = __webpack_require__(32); + var ReactPropTypes = __webpack_require__(29); + var ReactVersion = __webpack_require__(30); - var onlyChild = __webpack_require__(33); + var onlyChild = __webpack_require__(31); var warning = __webpack_require__(10); var createElement = ReactElement.createElement; var createFactory = ReactElement.createFactory; var cloneElement = ReactElement.cloneElement; - if ((undefined) !== 'production') { - var ReactElementValidator = __webpack_require__(26); + if (true) { + var ReactElementValidator = __webpack_require__(24); createElement = ReactElementValidator.createElement; createFactory = ReactElementValidator.createFactory; cloneElement = ReactElementValidator.cloneElement; @@ -368,10 +390,10 @@ return /******/ (function(modules) { // webpackBootstrap var __spread = _assign; - if ((undefined) !== 'production') { + if (true) { var warned = false; __spread = function __spread() { - (undefined) !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0; + true ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0; warned = true; return _assign.apply(null, arguments); }; @@ -518,7 +540,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactChildren */ 'use strict'; @@ -527,7 +548,7 @@ return /******/ (function(modules) { // webpackBootstrap var ReactElement = __webpack_require__(8); var emptyFunction = __webpack_require__(11); - var traverseAllChildren = __webpack_require__(13); + var traverseAllChildren = __webpack_require__(14); var twoArgumentPooler = PooledClass.twoArgumentPooler; var fourArgumentPooler = PooledClass.fourArgumentPooler; @@ -558,8 +579,8 @@ return /******/ (function(modules) { // webpackBootstrap PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); function forEachSingleChild(bookKeeping, child, name) { - var func = bookKeeping.func; - var context = bookKeeping.context; + var func = bookKeeping.func, + context = bookKeeping.context; func.call(context, child, bookKeeping.count++); } @@ -611,10 +632,10 @@ return /******/ (function(modules) { // webpackBootstrap PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); function mapSingleChildIntoContext(bookKeeping, child, childKey) { - var result = bookKeeping.result; - var keyPrefix = bookKeeping.keyPrefix; - var func = bookKeeping.func; - var context = bookKeeping.context; + var result = bookKeeping.result, + keyPrefix = bookKeeping.keyPrefix, + func = bookKeeping.func, + context = bookKeeping.context; var mappedChild = func.call(context, child, bookKeeping.count++); if (Array.isArray(mappedChild)) { @@ -703,131 +724,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 5 */ -/***/ 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. - * - * @providesModule PooledClass - */ - - 'use strict'; - - var _prodInvariant = __webpack_require__(6); - - var invariant = __webpack_require__(7); - - /** - * Static poolers. Several custom versions for each potential number of - * arguments. A completely generic pooler is easy to implement, but would - * require accessing the `arguments` object. In each of these, `this` refers to - * the Class itself, not an instance. If any others are needed, simply add them - * here, or in their own files. - */ - var oneArgumentPooler = function oneArgumentPooler(copyFieldsFrom) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, copyFieldsFrom); - return instance; - } else { - return new Klass(copyFieldsFrom); - } - }; - - var twoArgumentPooler = function twoArgumentPooler(a1, a2) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2); - return instance; - } else { - return new Klass(a1, a2); - } - }; - - var threeArgumentPooler = function threeArgumentPooler(a1, a2, a3) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3); - return instance; - } else { - return new Klass(a1, a2, a3); - } - }; - - var fourArgumentPooler = function fourArgumentPooler(a1, a2, a3, a4) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4); - return instance; - } else { - return new Klass(a1, a2, a3, a4); - } - }; - - var fiveArgumentPooler = function fiveArgumentPooler(a1, a2, a3, a4, a5) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4, a5); - return instance; - } else { - return new Klass(a1, a2, a3, a4, a5); - } - }; - - var standardReleaser = function standardReleaser(instance) { - var Klass = this; - !(instance instanceof Klass) ? (undefined) !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; - instance.destructor(); - if (Klass.instancePool.length < Klass.poolSize) { - Klass.instancePool.push(instance); - } - }; - - var DEFAULT_POOL_SIZE = 10; - var DEFAULT_POOLER = oneArgumentPooler; - - /** - * Augments `CopyConstructor` to be a poolable class, augmenting only the class - * itself (statically) not adding any prototypical fields. Any CopyConstructor - * you give this may have a `poolSize` property, and will look for a - * prototypical `destructor` on instances. - * - * @param {Function} CopyConstructor Constructor that can be used to reset. - * @param {Function} pooler Customizable pooler. - */ - var addPoolingTo = function addPoolingTo(CopyConstructor, pooler) { - var NewKlass = CopyConstructor; - NewKlass.instancePool = []; - NewKlass.getPooled = pooler || DEFAULT_POOLER; - if (!NewKlass.poolSize) { - NewKlass.poolSize = DEFAULT_POOL_SIZE; - } - NewKlass.release = standardReleaser; - return NewKlass; - }; - - var PooledClass = { - addPoolingTo: addPoolingTo, - oneArgumentPooler: oneArgumentPooler, - twoArgumentPooler: twoArgumentPooler, - threeArgumentPooler: threeArgumentPooler, - fourArgumentPooler: fourArgumentPooler, - fiveArgumentPooler: fiveArgumentPooler - }; - - module.exports = PooledClass; - -/***/ }, +[184, 6], /* 6 */ /***/ function(module, exports) { @@ -839,7 +736,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 reactProdInvariant * */ 'use strict'; @@ -898,12 +794,18 @@ return /******/ (function(modules) { // webpackBootstrap * will remain to ensure logic does not differ in production. */ - function invariant(condition, format, a, b, c, d, e, f) { - if ((undefined) !== 'production') { + var validateFormat = function validateFormat(format) {}; + + if (true) { + 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; @@ -937,7 +839,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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'; @@ -952,9 +853,7 @@ return /******/ (function(modules) { // webpackBootstrap var canDefineProperty = __webpack_require__(12); var hasOwnProperty = Object.prototype.hasOwnProperty; - // The Symbol used to tag the ReactElement type. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; + var REACT_ELEMENT_TYPE = __webpack_require__(13); var RESERVED_PROPS = { key: true, @@ -966,7 +865,7 @@ return /******/ (function(modules) { // webpackBootstrap var specialPropKeyWarningShown, specialPropRefWarningShown; function hasValidRef(config) { - if ((undefined) !== 'production') { + if (true) { if (hasOwnProperty.call(config, 'ref')) { var getter = Object.getOwnPropertyDescriptor(config, 'ref').get; if (getter && getter.isReactWarning) { @@ -978,7 +877,7 @@ return /******/ (function(modules) { // webpackBootstrap } function hasValidKey(config) { - if ((undefined) !== 'production') { + if (true) { if (hasOwnProperty.call(config, 'key')) { var getter = Object.getOwnPropertyDescriptor(config, 'key').get; if (getter && getter.isReactWarning) { @@ -993,7 +892,7 @@ return /******/ (function(modules) { // webpackBootstrap var warnAboutAccessingKey = function warnAboutAccessingKey() { if (!specialPropKeyWarningShown) { specialPropKeyWarningShown = true; - (undefined) !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; + true ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; } }; warnAboutAccessingKey.isReactWarning = true; @@ -1007,7 +906,7 @@ return /******/ (function(modules) { // webpackBootstrap var warnAboutAccessingRef = function warnAboutAccessingRef() { if (!specialPropRefWarningShown) { specialPropRefWarningShown = true; - (undefined) !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; + true ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; } }; warnAboutAccessingRef.isReactWarning = true; @@ -1052,13 +951,12 @@ return /******/ (function(modules) { // webpackBootstrap _owner: owner }; - if ((undefined) !== 'production') { + if (true) { // The validation flag is currently mutative. We put it 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. element._store = {}; - var shadowChildren = Array.isArray(props.children) ? props.children.slice(0) : props.children; // To make comparing ReactElements easier for testing purposes, we make // the validation flag non-enumerable (where possible, which should @@ -1078,12 +976,6 @@ return /******/ (function(modules) { // webpackBootstrap writable: false, value: self }); - Object.defineProperty(element, '_shadowChildren', { - configurable: false, - enumerable: false, - writable: false, - value: shadowChildren - }); // Two elements created in two different places should be considered // equal for testing purposes and therefore we hide it from enumeration. Object.defineProperty(element, '_source', { @@ -1095,7 +987,6 @@ return /******/ (function(modules) { // webpackBootstrap } else { element._store.validated = false; element._self = self; - element._shadowChildren = shadowChildren; element._source = source; } if (Object.freeze) { @@ -1150,6 +1041,11 @@ return /******/ (function(modules) { // webpackBootstrap for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 2]; } + if (true) { + if (Object.freeze) { + Object.freeze(childArray); + } + } props.children = childArray; } @@ -1162,7 +1058,7 @@ return /******/ (function(modules) { // webpackBootstrap } } } - if ((undefined) !== 'production') { + if (true) { if (key || ref) { if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; @@ -1276,8 +1172,6 @@ return /******/ (function(modules) { // webpackBootstrap return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; }; - ReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE; - module.exports = ReactElement; /***/ }, @@ -1292,7 +1186,7 @@ return /******/ (function(modules) { // webpackBootstrap * 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'; @@ -1343,7 +1237,7 @@ return /******/ (function(modules) { // webpackBootstrap var warning = emptyFunction; - if ((undefined) !== 'production') { + if (true) { (function () { var printWarning = function printWarning(format) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { @@ -1442,14 +1336,15 @@ return /******/ (function(modules) { // webpackBootstrap * 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 canDefineProperty + * */ 'use strict'; var canDefineProperty = false; - if ((undefined) !== 'production') { + if (true) { try { + // $FlowFixMe https://github.com/facebook/flow/issues/285 Object.defineProperty({}, 'x', { get: function get() {} }); canDefineProperty = true; } catch (x) { @@ -1461,6 +1356,30 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 13 */ +/***/ function(module, exports) { + + /** + * Copyright 2014-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'; + + // The Symbol used to tag the ReactElement type. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + + var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; + + module.exports = REACT_ELEMENT_TYPE; + +/***/ }, +/* 14 */ /***/ function(module, exports, __webpack_require__) { /** @@ -1471,7 +1390,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 traverseAllChildren */ 'use strict'; @@ -1481,16 +1399,22 @@ return /******/ (function(modules) { // webpackBootstrap var _prodInvariant = __webpack_require__(6); var ReactCurrentOwner = __webpack_require__(9); - var ReactElement = __webpack_require__(8); + var REACT_ELEMENT_TYPE = __webpack_require__(13); - var getIteratorFn = __webpack_require__(14); + var getIteratorFn = __webpack_require__(15); var invariant = __webpack_require__(7); - var KeyEscapeUtils = __webpack_require__(15); + var KeyEscapeUtils = __webpack_require__(16); var warning = __webpack_require__(10); var SEPARATOR = '.'; var SUBSEPARATOR = ':'; + /** + * This is inlined from ReactElement since this file is shared between + * isomorphic and renderers. We could extract this to a + * + */ + /** * TODO: Test that a single child and an array with one item have the same key * pattern. @@ -1532,7 +1456,10 @@ return /******/ (function(modules) { // webpackBootstrap children = null; } - if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) { + if (children === null || type === 'string' || type === 'number' || + // The following is inlined from ReactElement. This means we can optimize + // some checks. React Fiber also inlines this logic for similar purposes. + type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array // so that it's consistent if the number of children grows. @@ -1564,7 +1491,7 @@ return /******/ (function(modules) { // webpackBootstrap subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); } } else { - if ((undefined) !== 'production') { + if (true) { var mapsAsChildrenAddendum = ''; if (ReactCurrentOwner.current) { var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); @@ -1572,7 +1499,7 @@ return /******/ (function(modules) { // webpackBootstrap mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; } } - (undefined) !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; + true ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; didWarnAboutMaps = true; } // Iterator will provide entry [k,v] tuples rather than values. @@ -1587,7 +1514,7 @@ return /******/ (function(modules) { // webpackBootstrap } } else if (type === 'object') { var addendum = ''; - if ((undefined) !== 'production') { + if (true) { addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; if (children._isReactElement) { addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; @@ -1600,7 +1527,7 @@ return /******/ (function(modules) { // webpackBootstrap } } var childrenString = String(children); - true ? (undefined) !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; + true ? true ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; } } @@ -1634,7 +1561,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = traverseAllChildren; /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports) { /** @@ -1645,7 +1572,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 getIteratorFn * */ @@ -1680,7 +1606,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = getIteratorFn; /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports) { /** @@ -1691,7 +1617,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 KeyEscapeUtils * */ @@ -1744,7 +1669,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = KeyEscapeUtils; /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { /** @@ -1755,7 +1680,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactComponent */ 'use strict'; @@ -1764,10 +1688,10 @@ return /******/ (function(modules) { // webpackBootstrap var _prodInvariant = __webpack_require__(6); - var ReactNoopUpdateQueue = __webpack_require__(17); + var ReactNoopUpdateQueue = __webpack_require__(18); var canDefineProperty = __webpack_require__(12); - var emptyObject = __webpack_require__(18); + var emptyObject = __webpack_require__(19); var invariant = __webpack_require__(7); var warning = __webpack_require__(10); @@ -1811,7 +1735,7 @@ return /******/ (function(modules) { // webpackBootstrap * @protected */ ReactComponent.prototype.setState = function (partialState, callback) { - !((typeof partialState === 'undefined' ? 'undefined' : _typeof(partialState)) === 'object' || typeof partialState === 'function' || partialState == null) ? (undefined) !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; + !((typeof partialState === 'undefined' ? 'undefined' : _typeof(partialState)) === 'object' || typeof partialState === 'function' || partialState == null) ? true ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; this.updater.enqueueSetState(this, partialState); if (callback) { this.updater.enqueueCallback(this, callback, 'setState'); @@ -1844,7 +1768,7 @@ return /******/ (function(modules) { // webpackBootstrap * we would like to deprecate them, we're not going to move them over to this * modern base class. Instead, we define a getter that warns if it's accessed. */ - if ((undefined) !== 'production') { + if (true) { var deprecatedAPIs = { isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] @@ -1853,7 +1777,7 @@ return /******/ (function(modules) { // webpackBootstrap if (canDefineProperty) { Object.defineProperty(ReactComponent.prototype, methodName, { get: function get() { - (undefined) !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0; + true ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0; return undefined; } }); @@ -1869,7 +1793,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactComponent; /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { /** @@ -1880,7 +1804,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactNoopUpdateQueue */ 'use strict'; @@ -1888,9 +1811,9 @@ return /******/ (function(modules) { // webpackBootstrap var warning = __webpack_require__(10); function warnNoop(publicInstance, callerName) { - if ((undefined) !== 'production') { + if (true) { var constructor = publicInstance.constructor; - (undefined) !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; + true ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; } } @@ -1970,7 +1893,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactNoopUpdateQueue; /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { /** @@ -1987,14 +1910,14 @@ return /******/ (function(modules) { // webpackBootstrap var emptyObject = {}; - if ((undefined) !== 'production') { + if (true) { Object.freeze(emptyObject); } module.exports = emptyObject; /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2005,17 +1928,16 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactPureComponent */ 'use strict'; var _assign = __webpack_require__(3); - var ReactComponent = __webpack_require__(16); - var ReactNoopUpdateQueue = __webpack_require__(17); + var ReactComponent = __webpack_require__(17); + var ReactNoopUpdateQueue = __webpack_require__(18); - var emptyObject = __webpack_require__(18); + var emptyObject = __webpack_require__(19); /** * Base class helpers for the updating state of a component. @@ -2041,7 +1963,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactPureComponent; /***/ }, -/* 20 */ +/* 21 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2052,7 +1974,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactClass */ 'use strict'; @@ -2062,44 +1983,26 @@ return /******/ (function(modules) { // webpackBootstrap var _prodInvariant = __webpack_require__(6), _assign = __webpack_require__(3); - var ReactComponent = __webpack_require__(16); + var ReactComponent = __webpack_require__(17); var ReactElement = __webpack_require__(8); - var ReactPropTypeLocations = __webpack_require__(21); - var ReactPropTypeLocationNames = __webpack_require__(23); - var ReactNoopUpdateQueue = __webpack_require__(17); + var ReactPropTypeLocationNames = __webpack_require__(22); + var ReactNoopUpdateQueue = __webpack_require__(18); - var emptyObject = __webpack_require__(18); + var emptyObject = __webpack_require__(19); var invariant = __webpack_require__(7); - var keyMirror = __webpack_require__(22); - var keyOf = __webpack_require__(24); var warning = __webpack_require__(10); - var MIXINS_KEY = keyOf({ mixins: null }); + var MIXINS_KEY = 'mixins'; + + // Helper function to allow the creation of anonymous functions which do not + // have .name set to the name of the variable being assigned to. + function identity(fn) { + return fn; + } /** * Policies that describe methods in `ReactClassInterface`. */ - var SpecPolicy = keyMirror({ - /** - * These methods may be defined only once by the class specification or mixin. - */ - DEFINE_ONCE: null, - /** - * These methods may be defined by both the class specification and mixins. - * Subsequent definitions will be chained. These methods must return void. - */ - DEFINE_MANY: null, - /** - * These methods are overriding the base class. - */ - OVERRIDE_BASE: null, - /** - * These methods are similar to DEFINE_MANY, except we assume they return - * objects. We try to merge the keys of the return values of all the mixed in - * functions. If there is a key conflict we throw. - */ - DEFINE_MANY_MERGED: null - }); var injectedMixins = []; @@ -2133,7 +2036,7 @@ return /******/ (function(modules) { // webpackBootstrap * @type {array} * @optional */ - mixins: SpecPolicy.DEFINE_MANY, + mixins: 'DEFINE_MANY', /** * An object containing properties and methods that should be defined on @@ -2142,7 +2045,7 @@ return /******/ (function(modules) { // webpackBootstrap * @type {object} * @optional */ - statics: SpecPolicy.DEFINE_MANY, + statics: 'DEFINE_MANY', /** * Definition of prop types for this component. @@ -2150,7 +2053,7 @@ return /******/ (function(modules) { // webpackBootstrap * @type {object} * @optional */ - propTypes: SpecPolicy.DEFINE_MANY, + propTypes: 'DEFINE_MANY', /** * Definition of context types for this component. @@ -2158,7 +2061,7 @@ return /******/ (function(modules) { // webpackBootstrap * @type {object} * @optional */ - contextTypes: SpecPolicy.DEFINE_MANY, + contextTypes: 'DEFINE_MANY', /** * Definition of context types this component sets for its children. @@ -2166,7 +2069,7 @@ return /******/ (function(modules) { // webpackBootstrap * @type {object} * @optional */ - childContextTypes: SpecPolicy.DEFINE_MANY, + childContextTypes: 'DEFINE_MANY', // ==== Definition methods ==== @@ -2180,7 +2083,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {object} * @optional */ - getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED, + getDefaultProps: 'DEFINE_MANY_MERGED', /** * Invoked once before the component is mounted. The return value will be used @@ -2196,13 +2099,13 @@ return /******/ (function(modules) { // webpackBootstrap * @return {object} * @optional */ - getInitialState: SpecPolicy.DEFINE_MANY_MERGED, + getInitialState: 'DEFINE_MANY_MERGED', /** * @return {object} * @optional */ - getChildContext: SpecPolicy.DEFINE_MANY_MERGED, + getChildContext: 'DEFINE_MANY_MERGED', /** * Uses props from `this.props` and state from `this.state` to render the @@ -2220,7 +2123,7 @@ return /******/ (function(modules) { // webpackBootstrap * @nosideeffects * @required */ - render: SpecPolicy.DEFINE_ONCE, + render: 'DEFINE_ONCE', // ==== Delegate methods ==== @@ -2231,7 +2134,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @optional */ - componentWillMount: SpecPolicy.DEFINE_MANY, + componentWillMount: 'DEFINE_MANY', /** * Invoked when the component has been mounted and has a DOM representation. @@ -2243,7 +2146,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {DOMElement} rootNode DOM element representing the component. * @optional */ - componentDidMount: SpecPolicy.DEFINE_MANY, + componentDidMount: 'DEFINE_MANY', /** * Invoked before the component receives new props. @@ -2264,7 +2167,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} nextProps * @optional */ - componentWillReceiveProps: SpecPolicy.DEFINE_MANY, + componentWillReceiveProps: 'DEFINE_MANY', /** * Invoked while deciding if the component should be updated as a result of @@ -2286,7 +2189,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {boolean} True if the component should update. * @optional */ - shouldComponentUpdate: SpecPolicy.DEFINE_ONCE, + shouldComponentUpdate: 'DEFINE_ONCE', /** * Invoked when the component is about to update due to a transition from @@ -2303,7 +2206,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {ReactReconcileTransaction} transaction * @optional */ - componentWillUpdate: SpecPolicy.DEFINE_MANY, + componentWillUpdate: 'DEFINE_MANY', /** * Invoked when the component's DOM representation has been updated. @@ -2317,7 +2220,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {DOMElement} rootNode DOM element representing the component. * @optional */ - componentDidUpdate: SpecPolicy.DEFINE_MANY, + componentDidUpdate: 'DEFINE_MANY', /** * Invoked when the component is about to be removed from its parent and have @@ -2330,7 +2233,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @optional */ - componentWillUnmount: SpecPolicy.DEFINE_MANY, + componentWillUnmount: 'DEFINE_MANY', // ==== Advanced methods ==== @@ -2344,7 +2247,7 @@ return /******/ (function(modules) { // webpackBootstrap * @internal * @overridable */ - updateComponent: SpecPolicy.OVERRIDE_BASE + updateComponent: 'OVERRIDE_BASE' }; @@ -2369,14 +2272,14 @@ return /******/ (function(modules) { // webpackBootstrap } }, childContextTypes: function childContextTypes(Constructor, _childContextTypes) { - if ((undefined) !== 'production') { - validateTypeDef(Constructor, _childContextTypes, ReactPropTypeLocations.childContext); + if (true) { + validateTypeDef(Constructor, _childContextTypes, 'childContext'); } Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, _childContextTypes); }, contextTypes: function contextTypes(Constructor, _contextTypes) { - if ((undefined) !== 'production') { - validateTypeDef(Constructor, _contextTypes, ReactPropTypeLocations.context); + if (true) { + validateTypeDef(Constructor, _contextTypes, 'context'); } Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes); }, @@ -2392,8 +2295,8 @@ return /******/ (function(modules) { // webpackBootstrap } }, propTypes: function propTypes(Constructor, _propTypes) { - if ((undefined) !== 'production') { - validateTypeDef(Constructor, _propTypes, ReactPropTypeLocations.prop); + if (true) { + validateTypeDef(Constructor, _propTypes, 'prop'); } Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes); }, @@ -2402,13 +2305,12 @@ return /******/ (function(modules) { // webpackBootstrap }, autobind: function autobind() {} }; - // noop function validateTypeDef(Constructor, typeDef, location) { for (var propName in typeDef) { if (typeDef.hasOwnProperty(propName)) { // use a warning instead of an invariant so components // don't show up in prod but only in __DEV__ - (undefined) !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0; + true ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0; } } } @@ -2418,12 +2320,12 @@ return /******/ (function(modules) { // webpackBootstrap // Disallow overriding of base class methods unless explicitly allowed. if (ReactClassMixin.hasOwnProperty(name)) { - !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? (undefined) !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0; + !(specPolicy === 'OVERRIDE_BASE') ? true ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0; } // Disallow defining methods more than once unless explicitly allowed. if (isAlreadyDefined) { - !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? (undefined) !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0; + !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? true ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0; } } @@ -2433,18 +2335,18 @@ return /******/ (function(modules) { // webpackBootstrap */ function mixSpecIntoComponent(Constructor, spec) { if (!spec) { - if ((undefined) !== 'production') { + if (true) { var typeofSpec = typeof spec === 'undefined' ? 'undefined' : _typeof(spec); var isMixinValid = typeofSpec === 'object' && spec !== null; - (undefined) !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; + true ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; } return; } - !(typeof spec !== 'function') ? (undefined) !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0; - !!ReactElement.isValidElement(spec) ? (undefined) !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0; + !(typeof spec !== 'function') ? true ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0; + !!ReactElement.isValidElement(spec) ? true ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0; var proto = Constructor.prototype; var autoBindPairs = proto.__reactAutoBindPairs; @@ -2489,18 +2391,18 @@ return /******/ (function(modules) { // webpackBootstrap var specPolicy = ReactClassInterface[name]; // These cases should already be caught by validateMethodOverride. - !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? (undefined) !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0; + !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? true ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0; // For methods which are defined more than once, call the existing // methods before calling the new property, merging if appropriate. - if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) { + if (specPolicy === 'DEFINE_MANY_MERGED') { proto[name] = createMergedResultFunction(proto[name], property); - } else if (specPolicy === SpecPolicy.DEFINE_MANY) { + } else if (specPolicy === 'DEFINE_MANY') { proto[name] = createChainedFunction(proto[name], property); } } else { proto[name] = property; - if ((undefined) !== 'production') { + if (true) { // Add verbose displayName to the function, which helps when looking // at profiling tools. if (typeof property === 'function' && spec.displayName) { @@ -2524,10 +2426,10 @@ return /******/ (function(modules) { // webpackBootstrap } var isReserved = name in RESERVED_SPEC_KEYS; - !!isReserved ? (undefined) !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0; + !!isReserved ? true ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0; var isInherited = name in Constructor; - !!isInherited ? (undefined) !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0; + !!isInherited ? true ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0; Constructor[name] = property; } } @@ -2540,11 +2442,11 @@ return /******/ (function(modules) { // webpackBootstrap * @return {object} one after it has been mutated to contain everything in two. */ function mergeIntoWithNoDuplicateKeys(one, two) { - !(one && two && (typeof one === 'undefined' ? 'undefined' : _typeof(one)) === 'object' && (typeof two === 'undefined' ? 'undefined' : _typeof(two)) === 'object') ? (undefined) !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0; + !(one && two && (typeof one === 'undefined' ? 'undefined' : _typeof(one)) === 'object' && (typeof two === 'undefined' ? 'undefined' : _typeof(two)) === 'object') ? true ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0; for (var key in two) { if (two.hasOwnProperty(key)) { - !(one[key] === undefined) ? (undefined) !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0; + !(one[key] === undefined) ? true ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0; one[key] = two[key]; } } @@ -2599,7 +2501,7 @@ return /******/ (function(modules) { // webpackBootstrap */ function bindAutoBindMethod(component, method) { var boundMethod = method.bind(component); - if ((undefined) !== 'production') { + if (true) { boundMethod.__reactBoundContext = component; boundMethod.__reactBoundMethod = method; boundMethod.__reactBoundArguments = null; @@ -2614,9 +2516,9 @@ return /******/ (function(modules) { // webpackBootstrap // ignore the value of "this" that the user is trying to use, so // let's warn. if (newThis !== component && newThis !== null) { - (undefined) !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0; + true ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0; } else if (!args.length) { - (undefined) !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0; + true ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0; return boundMethod; } var reboundMethod = _bind.apply(boundMethod, arguments); @@ -2690,12 +2592,15 @@ return /******/ (function(modules) { // webpackBootstrap * @public */ createClass: function createClass(spec) { - var Constructor = function Constructor(props, context, updater) { + // To keep our warnings more understandable, we'll use a little hack here to + // ensure that Constructor.name !== 'Constructor'. This makes sure we don't + // unnecessarily identify a class without displayName as 'Constructor'. + var Constructor = identity(function (props, context, updater) { // This constructor gets overridden by mocks. The argument is used // by mocks to assert on what gets mounted. - if ((undefined) !== 'production') { - (undefined) !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; + if (true) { + true ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; } // Wire up auto-binding @@ -2714,7 +2619,7 @@ return /******/ (function(modules) { // webpackBootstrap // getInitialState and componentWillMount methods for initialization. var initialState = this.getInitialState ? this.getInitialState() : null; - if ((undefined) !== 'production') { + if (true) { // We allow auto-mocks to proceed as if they're returning null. if (initialState === undefined && this.getInitialState._isMockFunction) { // This is probably bad practice. Consider warning here and @@ -2722,10 +2627,10 @@ return /******/ (function(modules) { // webpackBootstrap initialState = null; } } - !((typeof initialState === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? (undefined) !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0; + !((typeof initialState === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? true ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0; this.state = initialState; - }; + }); Constructor.prototype = new ReactClassComponent(); Constructor.prototype.constructor = Constructor; Constructor.prototype.__reactAutoBindPairs = []; @@ -2739,7 +2644,7 @@ return /******/ (function(modules) { // webpackBootstrap Constructor.defaultProps = Constructor.getDefaultProps(); } - if ((undefined) !== 'production') { + if (true) { // This is a tag to indicate that the use of these method names is ok, // since it's used with createClass. If it's not, then it's likely a // mistake so we'll warn you to use the static property, property @@ -2752,11 +2657,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - !Constructor.prototype.render ? (undefined) !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0; + !Constructor.prototype.render ? true ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0; - if ((undefined) !== 'production') { - (undefined) !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; - (undefined) !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; + if (true) { + true ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; + true ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; } // Reduce time spent doing lookups by setting these on the prototype. @@ -2780,7 +2685,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactClass; /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2791,177 +2696,57 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactPropTypeLocations + * */ 'use strict'; - var keyMirror = __webpack_require__(22); + var ReactPropTypeLocationNames = {}; - var ReactPropTypeLocations = keyMirror({ - prop: null, - context: null, - childContext: null - }); + if (true) { + ReactPropTypeLocationNames = { + prop: 'prop', + context: 'context', + childContext: 'child context' + }; + } - module.exports = ReactPropTypeLocations; + module.exports = ReactPropTypeLocationNames; /***/ }, -/* 22 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { /** - * Copyright (c) 2013-present, Facebook, Inc. + * 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. * - * @typechecks static-only */ 'use strict'; - var invariant = __webpack_require__(7); + var ReactElement = __webpack_require__(8); /** - * Constructs an enumeration with keys equal to their value. - * - * For example: - * - * var COLORS = keyMirror({blue: null, red: null}); - * var myColor = COLORS.blue; - * var isColorValid = !!COLORS[myColor]; - * - * The last line could not be performed if the values of the generated enum were - * not equal to their keys. - * - * Input: {key1: val1, key2: val2} - * Output: {key1: key1, key2: key2} + * Create a factory that creates HTML tag elements. * - * @param {object} obj - * @return {object} + * @private */ - var keyMirror = function keyMirror(obj) { - var ret = {}; - var key; - !(obj instanceof Object && !Array.isArray(obj)) ? (undefined) !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : void 0; - for (key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - ret[key] = key; - } - return ret; - }; - - module.exports = keyMirror; - -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { + var createDOMFactory = ReactElement.createFactory; + if (true) { + var ReactElementValidator = __webpack_require__(24); + createDOMFactory = ReactElementValidator.createFactory; + } /** - * 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. + * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. + * This is also accessible via `React.DOM`. * - * @providesModule ReactPropTypeLocationNames - */ - - 'use strict'; - - var ReactPropTypeLocationNames = {}; - - if ((undefined) !== 'production') { - ReactPropTypeLocationNames = { - prop: 'prop', - context: 'context', - childContext: 'child context' - }; - } - - module.exports = ReactPropTypeLocationNames; - -/***/ }, -/* 24 */ -/***/ 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. - * - */ - - /** - * Allows extraction of a minified key. Let's the build system minify keys - * without losing 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 keyOf(oneKeyObj) { - var key; - for (key in oneKeyObj) { - if (!oneKeyObj.hasOwnProperty(key)) { - continue; - } - return key; - } - return null; - }; - - module.exports = keyOf; - -/***/ }, -/* 25 */ -/***/ 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. - * - * @providesModule ReactDOMFactories - */ - - 'use strict'; - - var ReactElement = __webpack_require__(8); - - /** - * Create a factory that creates HTML tag elements. - * - * @private - */ - var createDOMFactory = ReactElement.createFactory; - if ((undefined) !== 'production') { - var ReactElementValidator = __webpack_require__(26); - createDOMFactory = ReactElementValidator.createFactory; - } - - /** - * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. - * This is also accessible via `React.DOM`. - * - * @public + * @public */ var ReactDOMFactories = { a: createDOMFactory('a'), @@ -3103,7 +2888,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactDOMFactories; /***/ }, -/* 26 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3114,7 +2899,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactElementValidator */ /** @@ -3129,14 +2913,13 @@ return /******/ (function(modules) { // webpackBootstrap var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var ReactCurrentOwner = __webpack_require__(9); - var ReactComponentTreeHook = __webpack_require__(27); + var ReactComponentTreeHook = __webpack_require__(25); var ReactElement = __webpack_require__(8); - var ReactPropTypeLocations = __webpack_require__(21); - var checkReactTypeSpec = __webpack_require__(28); + var checkReactTypeSpec = __webpack_require__(26); var canDefineProperty = __webpack_require__(12); - var getIteratorFn = __webpack_require__(14); + var getIteratorFn = __webpack_require__(15); var warning = __webpack_require__(10); function getDeclarationErrorAddendum() { @@ -3202,7 +2985,7 @@ return /******/ (function(modules) { // webpackBootstrap childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; } - (undefined) !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0; + true ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0; } /** @@ -3260,10 +3043,10 @@ return /******/ (function(modules) { // webpackBootstrap } var name = componentClass.displayName || componentClass.name; if (componentClass.propTypes) { - checkReactTypeSpec(componentClass.propTypes, element.props, ReactPropTypeLocations.prop, name, element, null); + checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null); } if (typeof componentClass.getDefaultProps === 'function') { - (undefined) !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; + true ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; } } @@ -3274,7 +3057,7 @@ return /******/ (function(modules) { // webpackBootstrap // We warn in this case but don't throw. We expect the element creation to // succeed and there will likely be errors in render. if (!validType) { - (undefined) !== 'production' ? warning(false, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0; + true ? warning(false, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0; } var element = ReactElement.createElement.apply(this, arguments); @@ -3306,12 +3089,12 @@ return /******/ (function(modules) { // webpackBootstrap // Legacy hook TODO: Warn if this is accessed validatedFactory.type = type; - if ((undefined) !== 'production') { + if (true) { if (canDefineProperty) { Object.defineProperty(validatedFactory, 'type', { enumerable: false, get: function get() { - (undefined) !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0; + true ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0; Object.defineProperty(this, 'type', { value: type }); @@ -3338,7 +3121,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactElementValidator; /***/ }, -/* 27 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3349,7 +3132,7 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactComponentTreeHook + * */ 'use strict'; @@ -3394,113 +3177,96 @@ return /******/ (function(modules) { // webpackBootstrap // Set.prototype.keys Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys); - var itemMap; - var rootIDSet; - - var itemByKey; - var rootByKey; + var setItem; + var getItem; + var removeItem; + var getItemIDs; + var addRoot; + var removeRoot; + var getRootIDs; if (canUseCollections) { - itemMap = new Map(); - rootIDSet = new Set(); - } else { - itemByKey = {}; - rootByKey = {}; - } - - var unmountedIDs = []; - - // Use non-numeric keys to prevent V8 performance issues: - // https://github.com/facebook/react/pull/7232 - function getKeyFromID(id) { - return '.' + id; - } - function getIDFromKey(key) { - return parseInt(key.substr(1), 10); - } + var itemMap = new Map(); + var rootIDSet = new Set(); - function get(id) { - if (canUseCollections) { + setItem = function setItem(id, item) { + itemMap.set(id, item); + }; + getItem = function getItem(id) { return itemMap.get(id); - } else { - var key = getKeyFromID(id); - return itemByKey[key]; - } - } - - function remove(id) { - if (canUseCollections) { + }; + removeItem = function removeItem(id) { itemMap['delete'](id); - } else { - var key = getKeyFromID(id); - delete itemByKey[key]; - } - } + }; + getItemIDs = function getItemIDs() { + return Array.from(itemMap.keys()); + }; - function create(id, element, parentID) { - var item = { - element: element, - parentID: parentID, - text: null, - childIDs: [], - isMounted: false, - updateCount: 0 + addRoot = function addRoot(id) { + rootIDSet.add(id); + }; + removeRoot = function removeRoot(id) { + rootIDSet['delete'](id); + }; + getRootIDs = function getRootIDs() { + return Array.from(rootIDSet.keys()); }; + } else { + var itemByKey = {}; + var rootByKey = {}; - if (canUseCollections) { - itemMap.set(id, item); - } else { + // Use non-numeric keys to prevent V8 performance issues: + // https://github.com/facebook/react/pull/7232 + var getKeyFromID = function getKeyFromID(id) { + return '.' + id; + }; + var getIDFromKey = function getIDFromKey(key) { + return parseInt(key.substr(1), 10); + }; + + setItem = function setItem(id, item) { var key = getKeyFromID(id); itemByKey[key] = item; - } - } + }; + getItem = function getItem(id) { + var key = getKeyFromID(id); + return itemByKey[key]; + }; + removeItem = function removeItem(id) { + var key = getKeyFromID(id); + delete itemByKey[key]; + }; + getItemIDs = function getItemIDs() { + return Object.keys(itemByKey).map(getIDFromKey); + }; - function addRoot(id) { - if (canUseCollections) { - rootIDSet.add(id); - } else { + addRoot = function addRoot(id) { var key = getKeyFromID(id); rootByKey[key] = true; - } - } - - function removeRoot(id) { - if (canUseCollections) { - rootIDSet['delete'](id); - } else { + }; + removeRoot = function removeRoot(id) { var key = getKeyFromID(id); delete rootByKey[key]; - } - } - - function getRegisteredIDs() { - if (canUseCollections) { - return Array.from(itemMap.keys()); - } else { - return Object.keys(itemByKey).map(getIDFromKey); - } - } - - function getRootIDs() { - if (canUseCollections) { - return Array.from(rootIDSet.keys()); - } else { + }; + getRootIDs = function getRootIDs() { return Object.keys(rootByKey).map(getIDFromKey); - } + }; } + var unmountedIDs = []; + function purgeDeep(id) { - var item = get(id); + var item = getItem(id); if (item) { var childIDs = item.childIDs; - remove(id); + removeItem(id); childIDs.forEach(purgeDeep); } } function describeComponentFrame(name, source, ownerName) { - return '\n in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); + return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); } function _getDisplayName(element) { @@ -3523,35 +3289,44 @@ return /******/ (function(modules) { // webpackBootstrap if (ownerID) { ownerName = ReactComponentTreeHook.getDisplayName(ownerID); } - (undefined) !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; + true ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; return describeComponentFrame(name, element && element._source, ownerName); } var ReactComponentTreeHook = { onSetChildren: function onSetChildren(id, nextChildIDs) { - var item = get(id); + var item = getItem(id); + !item ? true ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; item.childIDs = nextChildIDs; for (var i = 0; i < nextChildIDs.length; i++) { var nextChildID = nextChildIDs[i]; - var nextChild = get(nextChildID); - !nextChild ? (undefined) !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; - !(nextChild.childIDs != null || _typeof(nextChild.element) !== 'object' || nextChild.element == null) ? (undefined) !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; - !nextChild.isMounted ? (undefined) !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; + var nextChild = getItem(nextChildID); + !nextChild ? true ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; + !(nextChild.childIDs != null || _typeof(nextChild.element) !== 'object' || nextChild.element == null) ? true ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; + !nextChild.isMounted ? true ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; if (nextChild.parentID == null) { nextChild.parentID = id; // TODO: This shouldn't be necessary but mounting a new root during in // componentWillMount currently causes not-yet-mounted components to - // be purged from our tree data so their parent ID is missing. + // be purged from our tree data so their parent id is missing. } - !(nextChild.parentID === id) ? (undefined) !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0; + !(nextChild.parentID === id) ? true ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0; } }, onBeforeMountComponent: function onBeforeMountComponent(id, element, parentID) { - create(id, element, parentID); + var item = { + element: element, + parentID: parentID, + text: null, + childIDs: [], + isMounted: false, + updateCount: 0 + }; + setItem(id, item); }, onBeforeUpdateComponent: function onBeforeUpdateComponent(id, element) { - var item = get(id); + var item = getItem(id); if (!item || !item.isMounted) { // We may end up here as a result of setState() in componentWillUnmount(). // In this case, ignore the element. @@ -3560,7 +3335,8 @@ return /******/ (function(modules) { // webpackBootstrap item.element = element; }, onMountComponent: function onMountComponent(id) { - var item = get(id); + var item = getItem(id); + !item ? true ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; item.isMounted = true; var isRoot = item.parentID === 0; if (isRoot) { @@ -3568,7 +3344,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, onUpdateComponent: function onUpdateComponent(id) { - var item = get(id); + var item = getItem(id); if (!item || !item.isMounted) { // We may end up here as a result of setState() in componentWillUnmount(). // In this case, ignore the element. @@ -3577,7 +3353,7 @@ return /******/ (function(modules) { // webpackBootstrap item.updateCount++; }, onUnmountComponent: function onUnmountComponent(id) { - var item = get(id); + var item = getItem(id); if (item) { // We need to check if it exists. // `item` might not exist if it is inside an error boundary, and a sibling @@ -3605,16 +3381,15 @@ return /******/ (function(modules) { // webpackBootstrap unmountedIDs.length = 0; }, isMounted: function isMounted(id) { - var item = get(id); + var item = getItem(id); return item ? item.isMounted : false; }, getCurrentStackAddendum: function getCurrentStackAddendum(topElement) { var info = ''; if (topElement) { - var type = topElement.type; - var name = typeof type === 'function' ? type.displayName || type.name : type; + var name = _getDisplayName(topElement); var owner = topElement._owner; - info += describeComponentFrame(name || 'Unknown', topElement._source, owner && owner.getName()); + info += describeComponentFrame(name, topElement._source, owner && owner.getName()); } var currentOwner = ReactCurrentOwner.current; @@ -3632,7 +3407,7 @@ return /******/ (function(modules) { // webpackBootstrap return info; }, getChildIDs: function getChildIDs(id) { - var item = get(id); + var item = getItem(id); return item ? item.childIDs : []; }, getDisplayName: function getDisplayName(id) { @@ -3643,7 +3418,7 @@ return /******/ (function(modules) { // webpackBootstrap return _getDisplayName(element); }, getElement: function getElement(id) { - var item = get(id); + var item = getItem(id); return item ? item.element : null; }, getOwnerID: function getOwnerID(id) { @@ -3654,11 +3429,11 @@ return /******/ (function(modules) { // webpackBootstrap return element._owner._debugID; }, getParentID: function getParentID(id) { - var item = get(id); + var item = getItem(id); return item ? item.parentID : null; }, getSource: function getSource(id) { - var item = get(id); + var item = getItem(id); var element = item ? item.element : null; var source = element != null ? element._source : null; return source; @@ -3674,19 +3449,18 @@ return /******/ (function(modules) { // webpackBootstrap } }, getUpdateCount: function getUpdateCount(id) { - var item = get(id); + var item = getItem(id); return item ? item.updateCount : 0; }, - getRegisteredIDs: getRegisteredIDs, - - getRootIDs: getRootIDs + getRootIDs: getRootIDs, + getRegisteredIDs: getItemIDs }; module.exports = ReactComponentTreeHook; /***/ }, -/* 28 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -3697,7 +3471,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 checkReactTypeSpec */ 'use strict'; @@ -3706,21 +3479,21 @@ return /******/ (function(modules) { // webpackBootstrap var _prodInvariant = __webpack_require__(6); - var ReactPropTypeLocationNames = __webpack_require__(23); - var ReactPropTypesSecret = __webpack_require__(30); + var ReactPropTypeLocationNames = __webpack_require__(22); + var ReactPropTypesSecret = __webpack_require__(28); var invariant = __webpack_require__(7); var warning = __webpack_require__(10); var ReactComponentTreeHook; - if (typeof process !== 'undefined' && process.env && (undefined) === 'test') { + if (typeof process !== 'undefined' && ({"NODE_ENV":"development"}) && ("development") === 'test') { // Temporary hack. // Inline requires don't work well with Jest: // https://github.com/facebook/react/issues/7240 // Remove the inline requires when we don't need them anymore: // https://github.com/facebook/react/pull/7178 - ReactComponentTreeHook = __webpack_require__(27); + ReactComponentTreeHook = __webpack_require__(25); } var loggedTypeFailures = {}; @@ -3747,12 +3520,12 @@ return /******/ (function(modules) { // webpackBootstrap try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. - !(typeof typeSpecs[typeSpecName] === 'function') ? (undefined) !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; + !(typeof typeSpecs[typeSpecName] === 'function') ? true ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } - (undefined) !== 'production' ? 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', ReactPropTypeLocationNames[location], typeSpecName, typeof error === 'undefined' ? 'undefined' : _typeof(error)) : void 0; + true ? 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', ReactPropTypeLocationNames[location], typeSpecName, typeof error === 'undefined' ? 'undefined' : _typeof(error)) : void 0; if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. @@ -3760,9 +3533,9 @@ return /******/ (function(modules) { // webpackBootstrap var componentStackInfo = ''; - if ((undefined) !== 'production') { + if (true) { if (!ReactComponentTreeHook) { - ReactComponentTreeHook = __webpack_require__(27); + ReactComponentTreeHook = __webpack_require__(25); } if (debugID !== null) { componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); @@ -3771,17 +3544,17 @@ return /******/ (function(modules) { // webpackBootstrap } } - (undefined) !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; + true ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; } } } } module.exports = checkReactTypeSpec; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(27))) /***/ }, -/* 29 */ +/* 27 */ /***/ function(module, exports) { 'use strict'; @@ -3967,7 +3740,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 30 */ +/* 28 */ /***/ function(module, exports) { /** @@ -3978,7 +3751,7 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactPropTypesSecret + * */ 'use strict'; @@ -3988,7 +3761,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactPropTypesSecret; /***/ }, -/* 31 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3999,7 +3772,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactPropTypes */ 'use strict'; @@ -4007,11 +3779,11 @@ return /******/ (function(modules) { // webpackBootstrap var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var ReactElement = __webpack_require__(8); - var ReactPropTypeLocationNames = __webpack_require__(23); - var ReactPropTypesSecret = __webpack_require__(30); + var ReactPropTypeLocationNames = __webpack_require__(22); + var ReactPropTypesSecret = __webpack_require__(28); var emptyFunction = __webpack_require__(11); - var getIteratorFn = __webpack_require__(14); + var getIteratorFn = __webpack_require__(15); var warning = __webpack_require__(10); /** @@ -4116,17 +3888,17 @@ return /******/ (function(modules) { // webpackBootstrap PropTypeError.prototype = Error.prototype; function createChainableTypeChecker(validate) { - if ((undefined) !== 'production') { + if (true) { var manualPropTypeCallCache = {}; } function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { componentName = componentName || ANONYMOUS; propFullName = propFullName || propName; - if ((undefined) !== 'production') { + if (true) { if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') { var cacheKey = componentName + ':' + propName; if (!manualPropTypeCallCache[cacheKey]) { - (undefined) !== 'production' ? warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will not work in the next major version. 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) : void 0; + true ? warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will not work in production with the next major version. ' + '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) : void 0; manualPropTypeCallCache[cacheKey] = true; } } @@ -4134,7 +3906,10 @@ return /******/ (function(modules) { // webpackBootstrap if (props[propName] == null) { var locationName = ReactPropTypeLocationNames[location]; if (isRequired) { - return new PropTypeError('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.')); + if (props[propName] === null) { + return new PropTypeError('The ' + locationName + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + locationName + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); } return null; } else { @@ -4220,7 +3995,7 @@ return /******/ (function(modules) { // webpackBootstrap function createEnumTypeChecker(expectedValues) { if (!Array.isArray(expectedValues)) { - (undefined) !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; return emptyFunction.thatReturnsNull; } @@ -4265,7 +4040,7 @@ return /******/ (function(modules) { // webpackBootstrap function createUnionTypeChecker(arrayOfTypeCheckers) { if (!Array.isArray(arrayOfTypeCheckers)) { - (undefined) !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; return emptyFunction.thatReturnsNull; } @@ -4426,7 +4201,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactPropTypes; /***/ }, -/* 32 */ +/* 30 */ /***/ function(module, exports) { /** @@ -4437,15 +4212,14 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactVersion */ 'use strict'; - module.exports = '15.3.2'; + module.exports = '15.4.1'; /***/ }, -/* 33 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4456,7 +4230,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 onlyChild */ 'use strict'; @@ -4481,22 +4254,22 @@ return /******/ (function(modules) { // webpackBootstrap * structure. */ function onlyChild(children) { - !ReactElement.isValidElement(children) ? (undefined) !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0; + !ReactElement.isValidElement(children) ? true ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0; return children; } module.exports = onlyChild; /***/ }, -/* 34 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - module.exports = __webpack_require__(35); + module.exports = __webpack_require__(33); /***/ }, -/* 35 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4507,23 +4280,22 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactDOM */ /* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ 'use strict'; - var ReactDOMComponentTree = __webpack_require__(36); - var ReactDefaultInjection = __webpack_require__(39); - var ReactMount = __webpack_require__(162); + var ReactDOMComponentTree = __webpack_require__(34); + var ReactDefaultInjection = __webpack_require__(38); + var ReactMount = __webpack_require__(166); var ReactReconciler = __webpack_require__(59); var ReactUpdates = __webpack_require__(56); - var ReactVersion = __webpack_require__(32); + var ReactVersion = __webpack_require__(171); - var findDOMNode = __webpack_require__(167); - var getHostComponentFromComposite = __webpack_require__(168); - var renderSubtreeIntoContainer = __webpack_require__(169); + var findDOMNode = __webpack_require__(172); + var getHostComponentFromComposite = __webpack_require__(173); + var renderSubtreeIntoContainer = __webpack_require__(174); var warning = __webpack_require__(10); ReactDefaultInjection.inject(); @@ -4541,7 +4313,6 @@ return /******/ (function(modules) { // webpackBootstrap // Inject the runtime into a devtools global hook regardless of browser. // Allows for debugging when the hook is injected on the page. - /* eslint-enable camelcase */ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ ComponentTree: { @@ -4563,8 +4334,8 @@ return /******/ (function(modules) { // webpackBootstrap }); } - if ((undefined) !== 'production') { - var ExecutionEnvironment = __webpack_require__(49); + if (true) { + var ExecutionEnvironment = __webpack_require__(48); if (ExecutionEnvironment.canUseDOM && window.top === window.self) { // First check if devtools is not installed @@ -4578,40 +4349,42 @@ return /******/ (function(modules) { // webpackBootstrap } var testFunc = function testFn() {}; - (undefined) !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0; + true ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0; // If we're in IE8, check to see if we are in compatibility mode and provide // information on preventing compatibility mode var ieCompatibilityMode = document.documentMode && document.documentMode < 8; - (undefined) !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '') : void 0; + true ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '') : void 0; var expectedFeatures = [ // shims - Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim]; + Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim]; for (var i = 0; i < expectedFeatures.length; i++) { if (!expectedFeatures[i]) { - (undefined) !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0; + true ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0; break; } } } } - if ((undefined) !== 'production') { + if (true) { var ReactInstrumentation = __webpack_require__(62); - var ReactDOMUnknownPropertyHook = __webpack_require__(170); - var ReactDOMNullInputValuePropHook = __webpack_require__(171); + var ReactDOMUnknownPropertyHook = __webpack_require__(175); + var ReactDOMNullInputValuePropHook = __webpack_require__(176); + var ReactDOMInvalidARIAHook = __webpack_require__(177); ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook); ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook); + ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook); } module.exports = ReactDOM; /***/ }, -/* 36 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4622,15 +4395,14 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactDOMComponentTree */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); - var DOMProperty = __webpack_require__(37); - var ReactDOMComponentFlags = __webpack_require__(38); + var DOMProperty = __webpack_require__(36); + var ReactDOMComponentFlags = __webpack_require__(37); var invariant = __webpack_require__(7); @@ -4710,7 +4482,7 @@ return /******/ (function(modules) { // webpackBootstrap } } // We reached the end of the DOM children without finding an ID match. - true ? (undefined) !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0; + true ? true ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0; } inst._flags |= Flags.hasCachedChildNodes; } @@ -4769,7 +4541,7 @@ return /******/ (function(modules) { // webpackBootstrap function getNodeFromInstance(inst) { // Without this first invariant, passing a non-DOM-component triggers the next // invariant for a missing parent, which is super confusing. - !(inst._hostNode !== undefined) ? (undefined) !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; + !(inst._hostNode !== undefined) ? true ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; if (inst._hostNode) { return inst._hostNode; @@ -4779,7 +4551,7 @@ return /******/ (function(modules) { // webpackBootstrap var parents = []; while (!inst._hostNode) { parents.push(inst); - !inst._hostParent ? (undefined) !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0; + !inst._hostParent ? true ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0; inst = inst._hostParent; } @@ -4804,7 +4576,9 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactDOMComponentTree; /***/ }, -/* 37 */ +/* 35 */ +6, +/* 36 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4815,12 +4589,11 @@ return /******/ (function(modules) { // webpackBootstrap * 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 DOMProperty */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); var invariant = __webpack_require__(7); @@ -4880,7 +4653,7 @@ return /******/ (function(modules) { // webpackBootstrap } for (var propName in Properties) { - !!DOMProperty.properties.hasOwnProperty(propName) ? (undefined) !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0; + !!DOMProperty.properties.hasOwnProperty(propName) ? true ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0; var lowerCased = propName.toLowerCase(); var propConfig = Properties[propName]; @@ -4897,16 +4670,16 @@ return /******/ (function(modules) { // webpackBootstrap hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) }; - !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? (undefined) !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0; + !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? true ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0; - if ((undefined) !== 'production') { + if (true) { DOMProperty.getPossibleStandardName[lowerCased] = propName; } if (DOMAttributeNames.hasOwnProperty(propName)) { var attributeName = DOMAttributeNames[propName]; propertyInfo.attributeName = attributeName; - if ((undefined) !== 'production') { + if (true) { DOMProperty.getPossibleStandardName[attributeName] = propName; } } @@ -4986,9 +4759,13 @@ return /******/ (function(modules) { // webpackBootstrap /** * Mapping from lowercase property names to the properly cased version, used * to warn in the case of missing properties. Available only in __DEV__. + * + * autofocus is predefined, because adding it to the property whitelist + * causes unintended side effects. + * * @type {Object} */ - getPossibleStandardName: (undefined) !== 'production' ? {} : null, + getPossibleStandardName: true ? { autofocus: 'autoFocus' } : null, /** * All of the isCustomAttribute() functions that have been injected. @@ -5015,7 +4792,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DOMProperty; /***/ }, -/* 38 */ +/* 37 */ /***/ function(module, exports) { /** @@ -5026,7 +4803,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactDOMComponentFlags */ 'use strict'; @@ -5038,7 +4814,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactDOMComponentFlags; /***/ }, -/* 39 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { /** @@ -5049,29 +4825,29 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactDefaultInjection */ 'use strict'; + var ARIADOMPropertyConfig = __webpack_require__(39); var BeforeInputEventPlugin = __webpack_require__(40); var ChangeEventPlugin = __webpack_require__(55); - var DefaultEventPluginOrder = __webpack_require__(73); - var EnterLeaveEventPlugin = __webpack_require__(74); - var HTMLDOMPropertyConfig = __webpack_require__(79); - var ReactComponentBrowserEnvironment = __webpack_require__(80); - var ReactDOMComponent = __webpack_require__(94); - var ReactDOMComponentTree = __webpack_require__(36); - var ReactDOMEmptyComponent = __webpack_require__(133); - var ReactDOMTreeTraversal = __webpack_require__(134); - var ReactDOMTextComponent = __webpack_require__(135); - var ReactDefaultBatchingStrategy = __webpack_require__(136); - var ReactEventListener = __webpack_require__(137); - var ReactInjection = __webpack_require__(140); - var ReactReconcileTransaction = __webpack_require__(141); - var SVGDOMPropertyConfig = __webpack_require__(149); - var SelectEventPlugin = __webpack_require__(150); - var SimpleEventPlugin = __webpack_require__(151); + var DefaultEventPluginOrder = __webpack_require__(72); + var EnterLeaveEventPlugin = __webpack_require__(73); + var HTMLDOMPropertyConfig = __webpack_require__(78); + var ReactComponentBrowserEnvironment = __webpack_require__(79); + var ReactDOMComponent = __webpack_require__(92); + var ReactDOMComponentTree = __webpack_require__(34); + var ReactDOMEmptyComponent = __webpack_require__(137); + var ReactDOMTreeTraversal = __webpack_require__(138); + var ReactDOMTextComponent = __webpack_require__(139); + var ReactDefaultBatchingStrategy = __webpack_require__(140); + var ReactEventListener = __webpack_require__(141); + var ReactInjection = __webpack_require__(144); + var ReactReconcileTransaction = __webpack_require__(145); + var SVGDOMPropertyConfig = __webpack_require__(153); + var SelectEventPlugin = __webpack_require__(154); + var SimpleEventPlugin = __webpack_require__(155); var alreadyInjected = false; @@ -5109,6 +4885,7 @@ return /******/ (function(modules) { // webpackBootstrap ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent); + ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig); ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig); ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); @@ -5126,6 +4903,84 @@ return /******/ (function(modules) { // webpackBootstrap inject: inject }; +/***/ }, +/* 39 */ +/***/ 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 ARIADOMPropertyConfig = { + Properties: { + // Global States and Properties + 'aria-current': 0, // state + 'aria-details': 0, + 'aria-disabled': 0, // state + 'aria-hidden': 0, // state + 'aria-invalid': 0, // state + 'aria-keyshortcuts': 0, + 'aria-label': 0, + 'aria-roledescription': 0, + // Widget Attributes + 'aria-autocomplete': 0, + 'aria-checked': 0, + 'aria-expanded': 0, + 'aria-haspopup': 0, + 'aria-level': 0, + 'aria-modal': 0, + 'aria-multiline': 0, + 'aria-multiselectable': 0, + 'aria-orientation': 0, + 'aria-placeholder': 0, + 'aria-pressed': 0, + 'aria-readonly': 0, + 'aria-required': 0, + 'aria-selected': 0, + 'aria-sort': 0, + 'aria-valuemax': 0, + 'aria-valuemin': 0, + 'aria-valuenow': 0, + 'aria-valuetext': 0, + // Live Region Attributes + 'aria-atomic': 0, + 'aria-busy': 0, + 'aria-live': 0, + 'aria-relevant': 0, + // Drag-and-Drop Attributes + 'aria-dropeffect': 0, + 'aria-grabbed': 0, + // Relationship Attributes + 'aria-activedescendant': 0, + 'aria-colcount': 0, + 'aria-colindex': 0, + 'aria-colspan': 0, + 'aria-controls': 0, + 'aria-describedby': 0, + 'aria-errormessage': 0, + 'aria-flowto': 0, + 'aria-labelledby': 0, + 'aria-owns': 0, + 'aria-posinset': 0, + 'aria-rowcount': 0, + 'aria-rowindex': 0, + 'aria-rowspan': 0, + 'aria-setsize': 0 + }, + DOMAttributeNames: {}, + DOMPropertyNames: {} + }; + + module.exports = ARIADOMPropertyConfig; + /***/ }, /* 40 */ /***/ function(module, exports, __webpack_require__) { @@ -5138,22 +4993,18 @@ return /******/ (function(modules) { // webpackBootstrap * 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 BeforeInputEventPlugin */ 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - var EventConstants = __webpack_require__(41); - var EventPropagators = __webpack_require__(42); - var ExecutionEnvironment = __webpack_require__(49); - var FallbackCompositionState = __webpack_require__(50); + var EventPropagators = __webpack_require__(41); + var ExecutionEnvironment = __webpack_require__(48); + var FallbackCompositionState = __webpack_require__(49); var SyntheticCompositionEvent = __webpack_require__(52); var SyntheticInputEvent = __webpack_require__(54); - var keyOf = __webpack_require__(24); - var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -5186,37 +5037,35 @@ return /******/ (function(modules) { // webpackBootstrap var SPACEBAR_CODE = 32; var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); - var topLevelTypes = EventConstants.topLevelTypes; - // Events and their corresponding property names. var eventTypes = { beforeInput: { phasedRegistrationNames: { - bubbled: keyOf({ onBeforeInput: null }), - captured: keyOf({ onBeforeInputCapture: null }) + bubbled: 'onBeforeInput', + captured: 'onBeforeInputCapture' }, - dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste] + dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste'] }, compositionEnd: { phasedRegistrationNames: { - bubbled: keyOf({ onCompositionEnd: null }), - captured: keyOf({ onCompositionEndCapture: null }) + bubbled: 'onCompositionEnd', + captured: 'onCompositionEndCapture' }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] }, compositionStart: { phasedRegistrationNames: { - bubbled: keyOf({ onCompositionStart: null }), - captured: keyOf({ onCompositionStartCapture: null }) + bubbled: 'onCompositionStart', + captured: 'onCompositionStartCapture' }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] }, compositionUpdate: { phasedRegistrationNames: { - bubbled: keyOf({ onCompositionUpdate: null }), - captured: keyOf({ onCompositionUpdateCapture: null }) + bubbled: 'onCompositionUpdate', + captured: 'onCompositionUpdateCapture' }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] } }; @@ -5242,11 +5091,11 @@ return /******/ (function(modules) { // webpackBootstrap */ function getCompositionEventType(topLevelType) { switch (topLevelType) { - case topLevelTypes.topCompositionStart: + case 'topCompositionStart': return eventTypes.compositionStart; - case topLevelTypes.topCompositionEnd: + case 'topCompositionEnd': return eventTypes.compositionEnd; - case topLevelTypes.topCompositionUpdate: + case 'topCompositionUpdate': return eventTypes.compositionUpdate; } } @@ -5260,7 +5109,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {boolean} */ function isFallbackCompositionStart(topLevelType, nativeEvent) { - return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE; + return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE; } /** @@ -5272,16 +5121,16 @@ return /******/ (function(modules) { // webpackBootstrap */ function isFallbackCompositionEnd(topLevelType, nativeEvent) { switch (topLevelType) { - case topLevelTypes.topKeyUp: + case 'topKeyUp': // Command keys insert or clear IME input. return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; - case topLevelTypes.topKeyDown: + case 'topKeyDown': // Expect IME keyCode on each keydown. If we get any other // code we must have exited earlier. return nativeEvent.keyCode !== START_KEYCODE; - case topLevelTypes.topKeyPress: - case topLevelTypes.topMouseDown: - case topLevelTypes.topBlur: + case 'topKeyPress': + case 'topMouseDown': + case 'topBlur': // Events are not possible without cancelling IME. return true; default: @@ -5366,9 +5215,9 @@ return /******/ (function(modules) { // webpackBootstrap */ function getNativeBeforeInputChars(topLevelType, nativeEvent) { switch (topLevelType) { - case topLevelTypes.topCompositionEnd: + case 'topCompositionEnd': return getDataFromCustomEvent(nativeEvent); - case topLevelTypes.topKeyPress: + case 'topKeyPress': /** * If native `textInput` events are available, our goal is to make * use of them. However, there is a special case: the spacebar key. @@ -5391,7 +5240,7 @@ return /******/ (function(modules) { // webpackBootstrap hasSpaceKeypress = true; return SPACEBAR_CHAR; - case topLevelTypes.topTextInput: + case 'topTextInput': // Record the characters to be added to the DOM. var chars = nativeEvent.data; @@ -5424,7 +5273,7 @@ return /******/ (function(modules) { // webpackBootstrap // If composition event is available, we extract a string only at // compositionevent, otherwise extract it at fallback events. if (currentComposition) { - if (topLevelType === topLevelTypes.topCompositionEnd || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) { + if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) { var chars = currentComposition.getData(); FallbackCompositionState.release(currentComposition); currentComposition = null; @@ -5434,11 +5283,11 @@ return /******/ (function(modules) { // webpackBootstrap } switch (topLevelType) { - case topLevelTypes.topPaste: + case 'topPaste': // If a paste event occurs after a keypress, throw out the input // chars. Paste events should not lead to BeforeInput events. return null; - case topLevelTypes.topKeyPress: + case 'topKeyPress': /** * As of v27, Firefox may fire keypress events even when no character * will be inserted. A few possibilities: @@ -5459,7 +5308,7 @@ return /******/ (function(modules) { // webpackBootstrap return String.fromCharCode(nativeEvent.which); } return null; - case topLevelTypes.topCompositionEnd: + case 'topCompositionEnd': return useFallbackCompositionData ? null : nativeEvent.data; default: return null; @@ -5535,122 +5384,17 @@ return /******/ (function(modules) { // webpackBootstrap * 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 EventConstants - */ - - 'use strict'; - - var keyMirror = __webpack_require__(22); - - var PropagationPhases = keyMirror({ bubbled: null, captured: null }); - - /** - * Types of raw signals from the browser caught at the top level. - */ - var topLevelTypes = keyMirror({ - topAbort: null, - topAnimationEnd: null, - topAnimationIteration: null, - topAnimationStart: null, - topBlur: null, - topCanPlay: null, - topCanPlayThrough: null, - topChange: null, - topClick: null, - topCompositionEnd: null, - topCompositionStart: null, - topCompositionUpdate: null, - topContextMenu: null, - topCopy: null, - topCut: null, - topDoubleClick: null, - topDrag: null, - topDragEnd: null, - topDragEnter: null, - topDragExit: null, - topDragLeave: null, - topDragOver: null, - topDragStart: null, - topDrop: null, - topDurationChange: null, - topEmptied: null, - topEncrypted: null, - topEnded: null, - topError: null, - topFocus: null, - topInput: null, - topInvalid: null, - topKeyDown: null, - topKeyPress: null, - topKeyUp: null, - topLoad: null, - topLoadedData: null, - topLoadedMetadata: null, - topLoadStart: null, - topMouseDown: null, - topMouseMove: null, - topMouseOut: null, - topMouseOver: null, - topMouseUp: null, - topPaste: null, - topPause: null, - topPlay: null, - topPlaying: null, - topProgress: null, - topRateChange: null, - topReset: null, - topScroll: null, - topSeeked: null, - topSeeking: null, - topSelectionChange: null, - topStalled: null, - topSubmit: null, - topSuspend: null, - topTextInput: null, - topTimeUpdate: null, - topTouchCancel: null, - topTouchEnd: null, - topTouchMove: null, - topTouchStart: null, - topTransitionEnd: null, - topVolumeChange: null, - topWaiting: null, - topWheel: null - }); - - var EventConstants = { - topLevelTypes: topLevelTypes, - PropagationPhases: PropagationPhases - }; - - module.exports = EventConstants; - -/***/ }, -/* 42 */ -/***/ 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. - * - * @providesModule EventPropagators */ 'use strict'; - var EventConstants = __webpack_require__(41); - var EventPluginHub = __webpack_require__(43); - var EventPluginUtils = __webpack_require__(45); + var EventPluginHub = __webpack_require__(42); + var EventPluginUtils = __webpack_require__(44); - var accumulateInto = __webpack_require__(47); - var forEachAccumulated = __webpack_require__(48); + var accumulateInto = __webpack_require__(46); + var forEachAccumulated = __webpack_require__(47); var warning = __webpack_require__(10); - var PropagationPhases = EventConstants.PropagationPhases; var getListener = EventPluginHub.getListener; /** @@ -5668,11 +5412,10 @@ return /******/ (function(modules) { // webpackBootstrap * Mutating the event's members allows us to not have to create a wrapping * "dispatch" object that pairs the event with the listener. */ - function accumulateDirectionalDispatches(inst, upwards, event) { - if ((undefined) !== 'production') { - (undefined) !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0; + function accumulateDirectionalDispatches(inst, phase, event) { + if (true) { + true ? warning(inst, 'Dispatching inst must not be null') : void 0; } - var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured; var listener = listenerAtPhase(inst, event, phase); if (listener) { event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); @@ -5768,7 +5511,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = EventPropagators; /***/ }, -/* 43 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { /** @@ -5779,21 +5522,20 @@ return /******/ (function(modules) { // webpackBootstrap * 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 EventPluginHub */ 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); - var EventPluginRegistry = __webpack_require__(44); - var EventPluginUtils = __webpack_require__(45); - var ReactErrorUtils = __webpack_require__(46); + var EventPluginRegistry = __webpack_require__(43); + var EventPluginUtils = __webpack_require__(44); + var ReactErrorUtils = __webpack_require__(45); - var accumulateInto = __webpack_require__(47); - var forEachAccumulated = __webpack_require__(48); + var accumulateInto = __webpack_require__(46); + var forEachAccumulated = __webpack_require__(47); var invariant = __webpack_require__(7); /** @@ -5836,6 +5578,28 @@ return /******/ (function(modules) { // webpackBootstrap return '.' + inst._rootNodeID; }; + function isInteractive(tag) { + return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; + } + + function shouldPreventMouseEvent(name, type, props) { + switch (name) { + case 'onClick': + case 'onClickCapture': + case 'onDoubleClick': + case 'onDoubleClickCapture': + case 'onMouseDown': + case 'onMouseDownCapture': + case 'onMouseMove': + case 'onMouseMoveCapture': + case 'onMouseUp': + case 'onMouseUpCapture': + return !!(props.disabled && isInteractive(type)); + default: + return false; + } + } + /** * This is a unified interface for event plugins to be installed and configured. * @@ -5886,7 +5650,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {function} listener The callback to store. */ putListener: function putListener(inst, registrationName, listener) { - !(typeof listener === 'function') ? (undefined) !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : _prodInvariant('94', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : void 0; + !(typeof listener === 'function') ? true ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : _prodInvariant('94', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : void 0; var key = getDictionaryKey(inst); var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); @@ -5904,7 +5668,12 @@ return /******/ (function(modules) { // webpackBootstrap * @return {?function} The stored callback. */ getListener: function getListener(inst, registrationName) { + // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not + // live here; needs to be moved to a better place soon var bankForRegistrationName = listenerBank[registrationName]; + if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) { + return null; + } var key = getDictionaryKey(inst); return bankForRegistrationName && bankForRegistrationName[key]; }, @@ -6005,7 +5774,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); } - !!eventQueue ? (undefined) !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0; + !!eventQueue ? true ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0; // This would be a good time to rethrow if any of the event handlers threw. ReactErrorUtils.rethrowCaughtError(); }, @@ -6026,7 +5795,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = EventPluginHub; /***/ }, -/* 44 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6037,19 +5806,19 @@ return /******/ (function(modules) { // webpackBootstrap * 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 EventPluginRegistry + * */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); var invariant = __webpack_require__(7); /** * Injectable ordering of event plugins. */ - var EventPluginOrder = null; + var eventPluginOrder = null; /** * Injectable mapping from names to event plugin modules. @@ -6062,22 +5831,22 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ function recomputePluginOrdering() { - if (!EventPluginOrder) { - // Wait until an `EventPluginOrder` is injected. + if (!eventPluginOrder) { + // Wait until an `eventPluginOrder` is injected. return; } for (var pluginName in namesToPlugins) { - var PluginModule = namesToPlugins[pluginName]; - var pluginIndex = EventPluginOrder.indexOf(pluginName); - !(pluginIndex > -1) ? (undefined) !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0; + var pluginModule = namesToPlugins[pluginName]; + var pluginIndex = eventPluginOrder.indexOf(pluginName); + !(pluginIndex > -1) ? true ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0; if (EventPluginRegistry.plugins[pluginIndex]) { continue; } - !PluginModule.extractEvents ? (undefined) !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0; - EventPluginRegistry.plugins[pluginIndex] = PluginModule; - var publishedEvents = PluginModule.eventTypes; + !pluginModule.extractEvents ? true ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0; + EventPluginRegistry.plugins[pluginIndex] = pluginModule; + var publishedEvents = pluginModule.eventTypes; for (var eventName in publishedEvents) { - !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? (undefined) !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0; + !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? true ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0; } } } @@ -6090,8 +5859,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {boolean} True if the event was successfully published. * @private */ - function publishEventForPlugin(dispatchConfig, PluginModule, eventName) { - !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? (undefined) !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0; + function publishEventForPlugin(dispatchConfig, pluginModule, eventName) { + !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? true ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0; EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; @@ -6099,12 +5868,12 @@ return /******/ (function(modules) { // webpackBootstrap for (var phaseName in phasedRegistrationNames) { if (phasedRegistrationNames.hasOwnProperty(phaseName)) { var phasedRegistrationName = phasedRegistrationNames[phaseName]; - publishRegistrationName(phasedRegistrationName, PluginModule, eventName); + publishRegistrationName(phasedRegistrationName, pluginModule, eventName); } } return true; } else if (dispatchConfig.registrationName) { - publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName); + publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName); return true; } return false; @@ -6118,12 +5887,12 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} PluginModule Plugin publishing the event. * @private */ - function publishRegistrationName(registrationName, PluginModule, eventName) { - !!EventPluginRegistry.registrationNameModules[registrationName] ? (undefined) !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0; - EventPluginRegistry.registrationNameModules[registrationName] = PluginModule; - EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies; + function publishRegistrationName(registrationName, pluginModule, eventName) { + !!EventPluginRegistry.registrationNameModules[registrationName] ? true ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0; + EventPluginRegistry.registrationNameModules[registrationName] = pluginModule; + EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies; - if ((undefined) !== 'production') { + if (true) { var lowerCasedName = registrationName.toLowerCase(); EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName; @@ -6166,7 +5935,8 @@ return /******/ (function(modules) { // webpackBootstrap * only in __DEV__. * @type {Object} */ - possibleRegistrationNames: (undefined) !== 'production' ? {} : null, + possibleRegistrationNames: true ? {} : null, + // Trust the developer to only use possibleRegistrationNames in __DEV__ /** * Injects an ordering of plugins (by plugin name). This allows the ordering @@ -6177,10 +5947,10 @@ return /******/ (function(modules) { // webpackBootstrap * @internal * @see {EventPluginHub.injection.injectEventPluginOrder} */ - injectEventPluginOrder: function injectEventPluginOrder(InjectedEventPluginOrder) { - !!EventPluginOrder ? (undefined) !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0; + injectEventPluginOrder: function injectEventPluginOrder(injectedEventPluginOrder) { + !!eventPluginOrder ? true ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0; // Clone the ordering so it cannot be dynamically mutated. - EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder); + eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder); recomputePluginOrdering(); }, @@ -6200,10 +5970,10 @@ return /******/ (function(modules) { // webpackBootstrap if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { continue; } - var PluginModule = injectedNamesToPlugins[pluginName]; - if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) { - !!namesToPlugins[pluginName] ? (undefined) !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0; - namesToPlugins[pluginName] = PluginModule; + var pluginModule = injectedNamesToPlugins[pluginName]; + if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) { + !!namesToPlugins[pluginName] ? true ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0; + namesToPlugins[pluginName] = pluginModule; isOrderingDirty = true; } } @@ -6224,13 +5994,19 @@ return /******/ (function(modules) { // webpackBootstrap if (dispatchConfig.registrationName) { return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; } - for (var phase in dispatchConfig.phasedRegistrationNames) { - if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) { - continue; - } - var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]]; - if (PluginModule) { - return PluginModule; + if (dispatchConfig.phasedRegistrationNames !== undefined) { + // pulling phasedRegistrationNames out of dispatchConfig helps Flow see + // that it is not undefined. + var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; + + for (var phase in phasedRegistrationNames) { + if (!phasedRegistrationNames.hasOwnProperty(phase)) { + continue; + } + var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]]; + if (pluginModule) { + return pluginModule; + } } } return null; @@ -6241,7 +6017,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _resetEventPlugins: function _resetEventPlugins() { - EventPluginOrder = null; + eventPluginOrder = null; for (var pluginName in namesToPlugins) { if (namesToPlugins.hasOwnProperty(pluginName)) { delete namesToPlugins[pluginName]; @@ -6263,7 +6039,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - if ((undefined) !== 'production') { + if (true) { var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames; for (var lowerCasedName in possibleRegistrationNames) { if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) { @@ -6278,7 +6054,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = EventPluginRegistry; /***/ }, -/* 45 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6289,15 +6065,13 @@ return /******/ (function(modules) { // webpackBootstrap * 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 EventPluginUtils */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); - var EventConstants = __webpack_require__(41); - var ReactErrorUtils = __webpack_require__(46); + var ReactErrorUtils = __webpack_require__(45); var invariant = __webpack_require__(7); var warning = __webpack_require__(10); @@ -6315,33 +6089,31 @@ return /******/ (function(modules) { // webpackBootstrap var injection = { injectComponentTree: function injectComponentTree(Injected) { ComponentTree = Injected; - if ((undefined) !== 'production') { - (undefined) !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0; + if (true) { + true ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0; } }, injectTreeTraversal: function injectTreeTraversal(Injected) { TreeTraversal = Injected; - if ((undefined) !== 'production') { - (undefined) !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0; + if (true) { + true ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0; } } }; - var topLevelTypes = EventConstants.topLevelTypes; - function isEndish(topLevelType) { - return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel; + return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel'; } function isMoveish(topLevelType) { - return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove; + return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove'; } function isStartish(topLevelType) { - return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart; + return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart'; } var validateEventDispatches; - if ((undefined) !== 'production') { + if (true) { validateEventDispatches = function validateEventDispatches(event) { var dispatchListeners = event._dispatchListeners; var dispatchInstances = event._dispatchInstances; @@ -6352,7 +6124,7 @@ return /******/ (function(modules) { // webpackBootstrap var instancesIsArr = Array.isArray(dispatchInstances); var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0; - (undefined) !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0; + true ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0; }; } @@ -6380,7 +6152,7 @@ return /******/ (function(modules) { // webpackBootstrap function executeDispatchesInOrder(event, simulated) { var dispatchListeners = event._dispatchListeners; var dispatchInstances = event._dispatchInstances; - if ((undefined) !== 'production') { + if (true) { validateEventDispatches(event); } if (Array.isArray(dispatchListeners)) { @@ -6408,7 +6180,7 @@ return /******/ (function(modules) { // webpackBootstrap function executeDispatchesInOrderStopAtTrueImpl(event) { var dispatchListeners = event._dispatchListeners; var dispatchInstances = event._dispatchInstances; - if ((undefined) !== 'production') { + if (true) { validateEventDispatches(event); } if (Array.isArray(dispatchListeners)) { @@ -6449,12 +6221,12 @@ return /******/ (function(modules) { // webpackBootstrap * @return {*} The return value of executing the single dispatch. */ function executeDirectDispatch(event) { - if ((undefined) !== 'production') { + if (true) { validateEventDispatches(event); } var dispatchListener = event._dispatchListeners; var dispatchInstance = event._dispatchInstances; - !!Array.isArray(dispatchListener) ? (undefined) !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0; + !!Array.isArray(dispatchListener) ? true ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0; event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null; var res = dispatchListener ? dispatchListener(event) : null; event.currentTarget = null; @@ -6512,7 +6284,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = EventPluginUtils; /***/ }, -/* 46 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6523,7 +6295,7 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactErrorUtils + * */ 'use strict'; @@ -6533,19 +6305,18 @@ return /******/ (function(modules) { // webpackBootstrap /** * Call a function while guarding against errors that happens within it. * - * @param {?String} name of the guard to use for logging or debugging + * @param {String} name of the guard to use for logging or debugging * @param {Function} func The function to invoke * @param {*} a First argument * @param {*} b Second argument */ - function invokeGuardedCallback(name, func, a, b) { + function invokeGuardedCallback(name, func, a) { try { - return func(a, b); + func(a); } catch (x) { if (caughtError === null) { caughtError = x; } - return undefined; } } @@ -6571,18 +6342,19 @@ return /******/ (function(modules) { // webpackBootstrap } }; - if ((undefined) !== 'production') { + if (true) { /** * To help development we can get better devtools integration by simulating a * real browser event. */ if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { var fakeNode = document.createElement('react'); - ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) { - var boundFunc = func.bind(null, a, b); + ReactErrorUtils.invokeGuardedCallback = function (name, func, a) { + var boundFunc = func.bind(null, a); var evtType = 'react-' + name; fakeNode.addEventListener(evtType, boundFunc, false); var evt = document.createEvent('Event'); + // $FlowFixMe https://github.com/facebook/flow/issues/2336 evt.initEvent(evtType, false, false); fakeNode.dispatchEvent(evt); fakeNode.removeEventListener(evtType, boundFunc, false); @@ -6593,7 +6365,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactErrorUtils; /***/ }, -/* 47 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6604,13 +6376,12 @@ return /******/ (function(modules) { // webpackBootstrap * 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 accumulateInto * */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); var invariant = __webpack_require__(7); @@ -6628,7 +6399,7 @@ return /******/ (function(modules) { // webpackBootstrap */ function accumulateInto(current, next) { - !(next != null) ? (undefined) !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0; + !(next != null) ? true ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0; if (current == null) { return next; @@ -6656,7 +6427,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = accumulateInto; /***/ }, -/* 48 */ +/* 47 */ /***/ function(module, exports) { /** @@ -6667,7 +6438,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 forEachAccumulated * */ @@ -6692,7 +6462,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = forEachAccumulated; /***/ }, -/* 49 */ +/* 48 */ /***/ function(module, exports) { /** @@ -6732,7 +6502,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ExecutionEnvironment; /***/ }, -/* 50 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { /** @@ -6743,14 +6513,13 @@ return /******/ (function(modules) { // webpackBootstrap * 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 FallbackCompositionState */ 'use strict'; var _assign = __webpack_require__(3); - var PooledClass = __webpack_require__(5); + var PooledClass = __webpack_require__(50); var getTextContentAccessor = __webpack_require__(51); @@ -6832,6 +6601,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = FallbackCompositionState; /***/ }, +/* 50 */ +[184, 35], /* 51 */ /***/ function(module, exports, __webpack_require__) { @@ -6843,12 +6614,11 @@ return /******/ (function(modules) { // webpackBootstrap * 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 getTextContentAccessor */ 'use strict'; - var ExecutionEnvironment = __webpack_require__(49); + var ExecutionEnvironment = __webpack_require__(48); var contentKey = null; @@ -6881,7 +6651,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 SyntheticCompositionEvent */ 'use strict'; @@ -6922,14 +6691,13 @@ return /******/ (function(modules) { // webpackBootstrap * 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 SyntheticEvent */ 'use strict'; var _assign = __webpack_require__(3); - var PooledClass = __webpack_require__(5); + var PooledClass = __webpack_require__(50); var emptyFunction = __webpack_require__(11); var warning = __webpack_require__(10); @@ -6977,7 +6745,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {DOMEventTarget} nativeEventTarget Target node. */ function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { - if ((undefined) !== 'production') { + if (true) { // these have a getter/setter for warnings delete this.nativeEvent; delete this.preventDefault; @@ -6993,7 +6761,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!Interface.hasOwnProperty(propName)) { continue; } - if ((undefined) !== 'production') { + if (true) { delete this[propName]; // this has a getter/setter for warnings } var normalize = Interface[propName]; @@ -7079,7 +6847,7 @@ return /******/ (function(modules) { // webpackBootstrap destructor: function destructor() { var Interface = this.constructor.Interface; for (var propName in Interface) { - if ((undefined) !== 'production') { + if (true) { Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName])); } else { this[propName] = null; @@ -7088,7 +6856,7 @@ return /******/ (function(modules) { // webpackBootstrap for (var i = 0; i < shouldBeReleasedProperties.length; i++) { this[shouldBeReleasedProperties[i]] = null; } - if ((undefined) !== 'production') { + if (true) { Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null)); Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction)); Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction)); @@ -7099,7 +6867,7 @@ return /******/ (function(modules) { // webpackBootstrap SyntheticEvent.Interface = EventInterface; - if ((undefined) !== 'production') { + if (true) { if (isProxySupported) { /*eslint-disable no-func-assign */ SyntheticEvent = new Proxy(SyntheticEvent, { @@ -7110,7 +6878,7 @@ return /******/ (function(modules) { // webpackBootstrap return new Proxy(constructor.apply(that, args), { set: function set(target, prop, value) { if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { - (undefined) !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; + true ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; didWarnForAddedNewProperty = true; } target[prop] = value; @@ -7179,7 +6947,7 @@ return /******/ (function(modules) { // webpackBootstrap function warn(action, result) { var warningCondition = false; - (undefined) !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; + true ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; } } @@ -7195,7 +6963,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 SyntheticInputEvent */ 'use strict'; @@ -7237,33 +7004,28 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ChangeEventPlugin */ 'use strict'; - var EventConstants = __webpack_require__(41); - var EventPluginHub = __webpack_require__(43); - var EventPropagators = __webpack_require__(42); - var ExecutionEnvironment = __webpack_require__(49); - var ReactDOMComponentTree = __webpack_require__(36); + var EventPluginHub = __webpack_require__(42); + var EventPropagators = __webpack_require__(41); + var ExecutionEnvironment = __webpack_require__(48); + var ReactDOMComponentTree = __webpack_require__(34); var ReactUpdates = __webpack_require__(56); var SyntheticEvent = __webpack_require__(53); - var getEventTarget = __webpack_require__(70); - var isEventSupported = __webpack_require__(71); - var isTextInputElement = __webpack_require__(72); - var keyOf = __webpack_require__(24); - - var topLevelTypes = EventConstants.topLevelTypes; + var getEventTarget = __webpack_require__(69); + var isEventSupported = __webpack_require__(70); + var isTextInputElement = __webpack_require__(71); var eventTypes = { change: { phasedRegistrationNames: { - bubbled: keyOf({ onChange: null }), - captured: keyOf({ onChangeCapture: null }) + bubbled: 'onChange', + captured: 'onChangeCapture' }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange] + dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange'] } }; @@ -7328,17 +7090,17 @@ return /******/ (function(modules) { // webpackBootstrap } function getTargetInstForChangeEvent(topLevelType, targetInst) { - if (topLevelType === topLevelTypes.topChange) { + if (topLevelType === 'topChange') { return targetInst; } } function handleEventsForChangeEventIE8(topLevelType, target, targetInst) { - if (topLevelType === topLevelTypes.topFocus) { + if (topLevelType === 'topFocus') { // stopWatching() should be a noop here but we call it just in case we // missed a blur event somehow. stopWatchingForChangeEventIE8(); startWatchingForChangeEventIE8(target, targetInst); - } else if (topLevelType === topLevelTypes.topBlur) { + } else if (topLevelType === 'topBlur') { stopWatchingForChangeEventIE8(); } } @@ -7436,7 +7198,7 @@ return /******/ (function(modules) { // webpackBootstrap * If a `change` event should be fired, returns the target's ID. */ function getTargetInstForInputEvent(topLevelType, targetInst) { - if (topLevelType === topLevelTypes.topInput) { + if (topLevelType === 'topInput') { // In modern browsers (i.e., not IE8 or IE9), the input event is exactly // what we want so fall through here and trigger an abstract event return targetInst; @@ -7444,7 +7206,7 @@ return /******/ (function(modules) { // webpackBootstrap } function handleEventsForInputEventIE(topLevelType, target, targetInst) { - if (topLevelType === topLevelTypes.topFocus) { + if (topLevelType === 'topFocus') { // In IE8, we can capture almost all .value changes by adding a // propertychange handler and looking for events with propertyName // equal to 'value' @@ -7460,14 +7222,14 @@ return /******/ (function(modules) { // webpackBootstrap // missed a blur event somehow. stopWatchingForValueChange(); startWatchingForValueChange(target, targetInst); - } else if (topLevelType === topLevelTypes.topBlur) { + } else if (topLevelType === 'topBlur') { stopWatchingForValueChange(); } } // For IE8 and IE9. function getTargetInstForInputEventIE(topLevelType, targetInst) { - if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) { + if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') { // On the selectionchange event, the target is just document which isn't // helpful for us so just check activeElement instead. // @@ -7496,7 +7258,7 @@ return /******/ (function(modules) { // webpackBootstrap } function getTargetInstForClickEvent(topLevelType, targetInst) { - if (topLevelType === topLevelTypes.topClick) { + if (topLevelType === 'topClick') { return targetInst; } } @@ -7567,19 +7329,18 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactUpdates */ 'use strict'; - var _prodInvariant = __webpack_require__(6), + var _prodInvariant = __webpack_require__(35), _assign = __webpack_require__(3); var CallbackQueue = __webpack_require__(57); - var PooledClass = __webpack_require__(5); + var PooledClass = __webpack_require__(50); var ReactFeatureFlags = __webpack_require__(58); var ReactReconciler = __webpack_require__(59); - var Transaction = __webpack_require__(69); + var Transaction = __webpack_require__(68); var invariant = __webpack_require__(7); @@ -7591,7 +7352,7 @@ return /******/ (function(modules) { // webpackBootstrap var batchingStrategy = null; function ensureInjected() { - !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? (undefined) !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0; + !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? true ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0; } var NESTED_UPDATES = { @@ -7632,7 +7393,7 @@ return /******/ (function(modules) { // webpackBootstrap /* useCreateElement */true); } - _assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, { + _assign(ReactUpdatesFlushTransaction.prototype, Transaction, { getTransactionWrappers: function getTransactionWrappers() { return TRANSACTION_WRAPPERS; }, @@ -7648,7 +7409,7 @@ return /******/ (function(modules) { // webpackBootstrap perform: function perform(method, scope, a) { // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` // with this transaction's wrappers around it. - return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); + return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); } }); @@ -7656,7 +7417,7 @@ return /******/ (function(modules) { // webpackBootstrap function batchedUpdates(callback, a, b, c, d, e) { ensureInjected(); - batchingStrategy.batchedUpdates(callback, a, b, c, d, e); + return batchingStrategy.batchedUpdates(callback, a, b, c, d, e); } /** @@ -7672,7 +7433,7 @@ return /******/ (function(modules) { // webpackBootstrap function runBatchedUpdates(transaction) { var len = transaction.dirtyComponentsLength; - !(len === dirtyComponents.length) ? (undefined) !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0; + !(len === dirtyComponents.length) ? true ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0; // Since reconciling a component higher in the owner hierarchy usually (not // always -- see shouldComponentUpdate()) will reconcile children, reconcile @@ -7702,7 +7463,7 @@ return /******/ (function(modules) { // webpackBootstrap if (ReactFeatureFlags.logTopLevelRenders) { var namedComponent = component; // Duck type TopLevelWrapper. This is probably always true. - if (component._currentElement.props === component._renderedComponent._currentElement) { + if (component._currentElement.type.isReactTopLevelWrapper) { namedComponent = component._renderedComponent; } markerName = 'React update: ' + namedComponent.getName(); @@ -7774,21 +7535,21 @@ return /******/ (function(modules) { // webpackBootstrap * if no updates are currently being performed. */ function asap(callback, context) { - !batchingStrategy.isBatchingUpdates ? (undefined) !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0; + !batchingStrategy.isBatchingUpdates ? true ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0; asapCallbackQueue.enqueue(callback, context); asapEnqueued = true; } var ReactUpdatesInjection = { injectReconcileTransaction: function injectReconcileTransaction(ReconcileTransaction) { - !ReconcileTransaction ? (undefined) !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0; + !ReconcileTransaction ? true ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0; ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; }, injectBatchingStrategy: function injectBatchingStrategy(_batchingStrategy) { - !_batchingStrategy ? (undefined) !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0; - !(typeof _batchingStrategy.batchedUpdates === 'function') ? (undefined) !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0; - !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? (undefined) !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0; + !_batchingStrategy ? true ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0; + !(typeof _batchingStrategy.batchedUpdates === 'function') ? true ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0; + !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? true ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0; batchingStrategy = _batchingStrategy; } }; @@ -7823,15 +7584,20 @@ return /******/ (function(modules) { // webpackBootstrap * 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 CallbackQueue + * */ 'use strict'; - var _prodInvariant = __webpack_require__(6), - _assign = __webpack_require__(3); + var _prodInvariant = __webpack_require__(35); - var PooledClass = __webpack_require__(5); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var PooledClass = __webpack_require__(50); var invariant = __webpack_require__(7); @@ -7846,12 +7612,15 @@ return /******/ (function(modules) { // webpackBootstrap * @implements PooledClass * @internal */ - function CallbackQueue() { - this._callbacks = null; - this._contexts = null; - } - _assign(CallbackQueue.prototype, { + var CallbackQueue = function () { + function CallbackQueue(arg) { + _classCallCheck(this, CallbackQueue); + + this._callbacks = null; + this._contexts = null; + this._arg = arg; + } /** * Enqueues a callback to be invoked when `notifyAll` is invoked. @@ -7860,12 +7629,13 @@ return /******/ (function(modules) { // webpackBootstrap * @param {?object} context Context to call `callback` with. * @internal */ - enqueue: function enqueue(callback, context) { + + CallbackQueue.prototype.enqueue = function enqueue(callback, context) { this._callbacks = this._callbacks || []; - this._contexts = this._contexts || []; this._callbacks.push(callback); + this._contexts = this._contexts || []; this._contexts.push(context); - }, + }; /** * Invokes all enqueued callbacks and clears the queue. This is invoked after @@ -7873,54 +7643,57 @@ return /******/ (function(modules) { // webpackBootstrap * * @internal */ - notifyAll: function notifyAll() { + + CallbackQueue.prototype.notifyAll = function notifyAll() { var callbacks = this._callbacks; var contexts = this._contexts; - if (callbacks) { - !(callbacks.length === contexts.length) ? (undefined) !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0; + var arg = this._arg; + if (callbacks && contexts) { + !(callbacks.length === contexts.length) ? true ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0; this._callbacks = null; this._contexts = null; for (var i = 0; i < callbacks.length; i++) { - callbacks[i].call(contexts[i]); + callbacks[i].call(contexts[i], arg); } callbacks.length = 0; contexts.length = 0; } - }, + }; - checkpoint: function checkpoint() { + CallbackQueue.prototype.checkpoint = function checkpoint() { return this._callbacks ? this._callbacks.length : 0; - }, + }; - rollback: function rollback(len) { - if (this._callbacks) { + CallbackQueue.prototype.rollback = function rollback(len) { + if (this._callbacks && this._contexts) { this._callbacks.length = len; this._contexts.length = len; } - }, + }; /** * Resets the internal queue. * * @internal */ - reset: function reset() { + + CallbackQueue.prototype.reset = function reset() { this._callbacks = null; this._contexts = null; - }, + }; /** * `PooledClass` looks for this. */ - destructor: function destructor() { - this.reset(); - } - }); + CallbackQueue.prototype.destructor = function destructor() { + this.reset(); + }; - PooledClass.addPoolingTo(CallbackQueue); + return CallbackQueue; + }(); - module.exports = CallbackQueue; + module.exports = PooledClass.addPoolingTo(CallbackQueue); /***/ }, /* 58 */ @@ -7934,7 +7707,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactFeatureFlags * */ @@ -7961,7 +7733,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactReconciler */ 'use strict'; @@ -7994,7 +7765,7 @@ return /******/ (function(modules) { // webpackBootstrap */ mountComponent: function mountComponent(internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots ) { - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); } @@ -8003,7 +7774,7 @@ return /******/ (function(modules) { // webpackBootstrap if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { transaction.getReactMountReady().enqueue(attachRefs, internalInstance); } - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); } @@ -8026,14 +7797,14 @@ return /******/ (function(modules) { // webpackBootstrap * @internal */ unmountComponent: function unmountComponent(internalInstance, safely) { - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID); } } ReactRef.detachRefs(internalInstance, internalInstance._currentElement); internalInstance.unmountComponent(safely); - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); } @@ -8066,7 +7837,7 @@ return /******/ (function(modules) { // webpackBootstrap return; } - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); } @@ -8084,7 +7855,7 @@ return /******/ (function(modules) { // webpackBootstrap transaction.getReactMountReady().enqueue(attachRefs, internalInstance); } - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); } @@ -8102,16 +7873,16 @@ return /******/ (function(modules) { // webpackBootstrap if (internalInstance._updateBatchNumber !== updateBatchNumber) { // The component's enqueued batch number should always be the current // batch or the following one. - (undefined) !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; + true ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; return; } - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); } } internalInstance.performUpdateIfNecessary(transaction); - if ((undefined) !== 'production') { + if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); } @@ -8134,11 +7905,13 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactRef + * */ 'use strict'; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + var ReactOwner = __webpack_require__(61); var ReactRef = {}; @@ -8162,7 +7935,7 @@ return /******/ (function(modules) { // webpackBootstrap } ReactRef.attachRefs = function (instance, element) { - if (element === null || element === false) { + if (element === null || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') { return; } var ref = element.ref; @@ -8184,19 +7957,27 @@ return /******/ (function(modules) { // webpackBootstrap // is made. It probably belongs where the key checking and // instantiateReactComponent is done. - var prevEmpty = prevElement === null || prevElement === false; - var nextEmpty = nextElement === null || nextElement === false; + var prevRef = null; + var prevOwner = null; + if (prevElement !== null && (typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement)) === 'object') { + prevRef = prevElement.ref; + prevOwner = prevElement._owner; + } - return ( - // This has a few false positives w/r/t empty components. - prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref || - // If owner changes but we have an unchanged function ref, don't update refs - typeof nextElement.ref === 'string' && nextElement._owner !== prevElement._owner - ); + var nextRef = null; + var nextOwner = null; + if (nextElement !== null && (typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement)) === 'object') { + nextRef = nextElement.ref; + nextOwner = nextElement._owner; + } + + return prevRef !== nextRef || + // If owner changes but we have an unchanged function ref, don't update refs + typeof nextRef === 'string' && nextOwner !== prevOwner; }; ReactRef.detachRefs = function (instance, element) { - if (element === null || element === false) { + if (element === null || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') { return; } var ref = element.ref; @@ -8219,15 +8000,24 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactOwner + * */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); var invariant = __webpack_require__(7); + /** + * @param {?object} object + * @return {boolean} True if `object` is a valid owner. + * @final + */ + function isValidOwner(object) { + return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); + } + /** * ReactOwners are capable of storing references to owned components. * @@ -8259,16 +8049,6 @@ return /******/ (function(modules) { // webpackBootstrap * @class ReactOwner */ var ReactOwner = { - - /** - * @param {?object} object - * @return {boolean} True if `object` is a valid owner. - * @final - */ - isValidOwner: function isValidOwner(object) { - return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); - }, - /** * Adds a component by ref to an owner component. * @@ -8279,7 +8059,7 @@ return /******/ (function(modules) { // webpackBootstrap * @internal */ addComponentAsRefTo: function addComponentAsRefTo(component, ref, owner) { - !ReactOwner.isValidOwner(owner) ? (undefined) !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0; + !isValidOwner(owner) ? true ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0; owner.attachRef(ref, component); }, @@ -8293,7 +8073,7 @@ return /******/ (function(modules) { // webpackBootstrap * @internal */ removeComponentAsRefFrom: function removeComponentAsRefFrom(component, ref, owner) { - !ReactOwner.isValidOwner(owner) ? (undefined) !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0; + !isValidOwner(owner) ? true ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0; var ownerPublicInstance = owner.getPublicInstance(); // Check that `component`'s owner is still alive and that `component` is still the current ref // because we do not want to detach the ref if another component stole it. @@ -8318,14 +8098,16 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactInstrumentation + * */ 'use strict'; + // Trust the developer to only use ReactInstrumentation with a __DEV__ check + var debugTool = null; - if ((undefined) !== 'production') { + if (true) { var ReactDebugTool = __webpack_require__(63); debugTool = ReactDebugTool; } @@ -8344,18 +8126,19 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactDebugTool + * */ 'use strict'; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + var ReactInvalidSetStateWarningHook = __webpack_require__(64); var ReactHostOperationHistoryHook = __webpack_require__(65); - var ReactComponentTreeHook = __webpack_require__(27); - var ReactChildrenMutationWarningHook = __webpack_require__(66); - var ExecutionEnvironment = __webpack_require__(49); + var ReactComponentTreeHook = __webpack_require__(25); + var ExecutionEnvironment = __webpack_require__(48); - var performanceNow = __webpack_require__(67); + var performanceNow = __webpack_require__(66); var warning = __webpack_require__(10); var hooks = []; @@ -8365,7 +8148,7 @@ return /******/ (function(modules) { // webpackBootstrap try { fn.call(context, arg1, arg2, arg3, arg4, arg5); } catch (e) { - (undefined) !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0; + true ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0; didHookThrowForEvent[event] = true; } } @@ -8384,11 +8167,11 @@ return /******/ (function(modules) { // webpackBootstrap var flushHistory = []; var lifeCycleTimerStack = []; var currentFlushNesting = 0; - var currentFlushMeasurements = null; - var currentFlushStartTime = null; + var currentFlushMeasurements = []; + var currentFlushStartTime = 0; var currentTimerDebugID = null; - var currentTimerStartTime = null; - var currentTimerNestedFlushDuration = null; + var currentTimerStartTime = 0; + var currentTimerNestedFlushDuration = 0; var currentTimerType = null; var lifeCycleTimerHasWarned = false; @@ -8408,7 +8191,7 @@ return /******/ (function(modules) { // webpackBootstrap updateCount: ReactComponentTreeHook.getUpdateCount(id), childIDs: ReactComponentTreeHook.getChildIDs(id), // Text nodes don't have owners but this is close enough. - ownerID: ownerID || ReactComponentTreeHook.getOwnerID(parentID), + ownerID: ownerID || parentID && ReactComponentTreeHook.getOwnerID(parentID) || 0, parentID: parentID }; return tree; @@ -8417,12 +8200,12 @@ return /******/ (function(modules) { // webpackBootstrap function resetMeasurements() { var previousStartTime = currentFlushStartTime; - var previousMeasurements = currentFlushMeasurements || []; + var previousMeasurements = currentFlushMeasurements; var previousOperations = ReactHostOperationHistoryHook.getHistory(); if (currentFlushNesting === 0) { - currentFlushStartTime = null; - currentFlushMeasurements = null; + currentFlushStartTime = 0; + currentFlushMeasurements = []; clearHistory(); return; } @@ -8443,13 +8226,13 @@ return /******/ (function(modules) { // webpackBootstrap } function checkDebugID(debugID) { - var allowRoot = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var allowRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (allowRoot && debugID === 0) { return; } if (!debugID) { - (undefined) !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0; + true ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0; } } @@ -8458,7 +8241,7 @@ return /******/ (function(modules) { // webpackBootstrap return; } if (currentTimerType && !lifeCycleTimerHasWarned) { - (undefined) !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + true ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; lifeCycleTimerHasWarned = true; } currentTimerStartTime = performanceNow(); @@ -8472,7 +8255,7 @@ return /******/ (function(modules) { // webpackBootstrap return; } if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) { - (undefined) !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + true ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; lifeCycleTimerHasWarned = true; } if (_isProfiling) { @@ -8482,8 +8265,8 @@ return /******/ (function(modules) { // webpackBootstrap duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration }); } - currentTimerStartTime = null; - currentTimerNestedFlushDuration = null; + currentTimerStartTime = 0; + currentTimerNestedFlushDuration = 0; currentTimerDebugID = null; currentTimerType = null; } @@ -8496,19 +8279,18 @@ return /******/ (function(modules) { // webpackBootstrap timerType: currentTimerType }; lifeCycleTimerStack.push(currentTimer); - currentTimerStartTime = null; - currentTimerNestedFlushDuration = null; + currentTimerStartTime = 0; + currentTimerNestedFlushDuration = 0; currentTimerDebugID = null; currentTimerType = null; } function resumeCurrentLifeCycleTimer() { - var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(); - - var startTime = _lifeCycleTimerStack$.startTime; - var nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime; - var debugID = _lifeCycleTimerStack$.debugID; - var timerType = _lifeCycleTimerStack$.timerType; + var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(), + startTime = _lifeCycleTimerStack$.startTime, + nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime, + debugID = _lifeCycleTimerStack$.debugID, + timerType = _lifeCycleTimerStack$.timerType; var nestedFlushDuration = performanceNow() - nestedFlushStartTime; currentTimerStartTime = startTime; @@ -8517,6 +8299,60 @@ return /******/ (function(modules) { // webpackBootstrap currentTimerType = timerType; } + var lastMarkTimeStamp = 0; + var canUsePerformanceMeasure = + // $FlowFixMe https://github.com/facebook/flow/issues/2345 + typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function'; + + function shouldMark(debugID) { + if (!_isProfiling || !canUsePerformanceMeasure) { + return false; + } + var element = ReactComponentTreeHook.getElement(debugID); + if (element == null || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') { + return false; + } + var isHostElement = typeof element.type === 'string'; + if (isHostElement) { + return false; + } + return true; + } + + function markBegin(debugID, markType) { + if (!shouldMark(debugID)) { + return; + } + + var markName = debugID + '::' + markType; + lastMarkTimeStamp = performanceNow(); + performance.mark(markName); + } + + function markEnd(debugID, markType) { + if (!shouldMark(debugID)) { + return; + } + + var markName = debugID + '::' + markType; + var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown'; + + // Chrome has an issue of dropping markers recorded too fast: + // https://bugs.chromium.org/p/chromium/issues/detail?id=640652 + // To work around this, we will not report very small measurements. + // I determined the magic number by tweaking it back and forth. + // 0.05ms was enough to prevent the issue, but I set it to 0.1ms to be safe. + // When the bug is fixed, we can `measure()` unconditionally if we want to. + var timeStamp = performanceNow(); + if (timeStamp - lastMarkTimeStamp > 0.1) { + var measurementName = displayName + ' [' + markType + ']'; + performance.measure(measurementName, markName); + } + + performance.clearMarks(markName); + performance.clearMeasures(measurementName); + } + var ReactDebugTool = { addHook: function addHook(hook) { hooks.push(hook); @@ -8569,11 +8405,13 @@ return /******/ (function(modules) { // webpackBootstrap onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) { checkDebugID(debugID); emitEvent('onBeginLifeCycleTimer', debugID, timerType); + markBegin(debugID, timerType); beginLifeCycleTimer(debugID, timerType); }, onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) { checkDebugID(debugID); endLifeCycleTimer(debugID, timerType); + markEnd(debugID, timerType); emitEvent('onEndLifeCycleTimer', debugID, timerType); }, onBeginProcessingChildContext: function onBeginProcessingChildContext() { @@ -8582,9 +8420,9 @@ return /******/ (function(modules) { // webpackBootstrap onEndProcessingChildContext: function onEndProcessingChildContext() { emitEvent('onEndProcessingChildContext'); }, - onHostOperation: function onHostOperation(debugID, type, payload) { - checkDebugID(debugID); - emitEvent('onHostOperation', debugID, type, payload); + onHostOperation: function onHostOperation(operation) { + checkDebugID(operation.instanceID); + emitEvent('onHostOperation', operation); }, onSetState: function onSetState() { emitEvent('onSetState'); @@ -8598,25 +8436,31 @@ return /******/ (function(modules) { // webpackBootstrap checkDebugID(debugID); checkDebugID(parentDebugID, true); emitEvent('onBeforeMountComponent', debugID, element, parentDebugID); + markBegin(debugID, 'mount'); }, onMountComponent: function onMountComponent(debugID) { checkDebugID(debugID); + markEnd(debugID, 'mount'); emitEvent('onMountComponent', debugID); }, onBeforeUpdateComponent: function onBeforeUpdateComponent(debugID, element) { checkDebugID(debugID); emitEvent('onBeforeUpdateComponent', debugID, element); + markBegin(debugID, 'update'); }, onUpdateComponent: function onUpdateComponent(debugID) { checkDebugID(debugID); + markEnd(debugID, 'update'); emitEvent('onUpdateComponent', debugID); }, onBeforeUnmountComponent: function onBeforeUnmountComponent(debugID) { checkDebugID(debugID); emitEvent('onBeforeUnmountComponent', debugID); + markBegin(debugID, 'unmount'); }, onUnmountComponent: function onUnmountComponent(debugID) { checkDebugID(debugID); + markEnd(debugID, 'unmount'); emitEvent('onUnmountComponent', debugID); }, onTestEvent: function onTestEvent() { @@ -8630,7 +8474,6 @@ return /******/ (function(modules) { // webpackBootstrap ReactDebugTool.addHook(ReactInvalidSetStateWarningHook); ReactDebugTool.addHook(ReactComponentTreeHook); - ReactDebugTool.addHook(ReactChildrenMutationWarningHook); var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; if (/[?&]react_perf\b/.test(url)) { ReactDebugTool.beginProfiling(); @@ -8650,18 +8493,18 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactInvalidSetStateWarningHook + * */ 'use strict'; var warning = __webpack_require__(10); - if ((undefined) !== 'production') { + if (true) { var processingChildContext = false; var warnInvalidSetState = function warnInvalidSetState() { - (undefined) !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0; + true ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0; }; } @@ -8691,7 +8534,7 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactHostOperationHistoryHook + * */ 'use strict'; @@ -8699,12 +8542,8 @@ return /******/ (function(modules) { // webpackBootstrap var history = []; var ReactHostOperationHistoryHook = { - onHostOperation: function onHostOperation(debugID, type, payload) { - history.push({ - instanceID: debugID, - type: type, - payload: payload - }); + onHostOperation: function onHostOperation(operation) { + history.push(operation); }, clearHistory: function clearHistory() { if (ReactHostOperationHistoryHook._preventClearing) { @@ -8723,65 +8562,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 66 */ -/***/ 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. - * - * @providesModule ReactChildrenMutationWarningHook - */ - - 'use strict'; - - var ReactComponentTreeHook = __webpack_require__(27); - - var warning = __webpack_require__(10); - - function handleElement(debugID, element) { - if (element == null) { - return; - } - if (element._shadowChildren === undefined) { - return; - } - if (element._shadowChildren === element.props.children) { - return; - } - var isMutated = false; - if (Array.isArray(element._shadowChildren)) { - if (element._shadowChildren.length === element.props.children.length) { - for (var i = 0; i < element._shadowChildren.length; i++) { - if (element._shadowChildren[i] !== element.props.children[i]) { - isMutated = true; - } - } - } else { - isMutated = true; - } - } - if (!Array.isArray(element._shadowChildren) || isMutated) { - (undefined) !== 'production' ? warning(false, 'Component\'s children should not be mutated.%s', ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - } - } - - var ReactChildrenMutationWarningHook = { - onMountComponent: function onMountComponent(debugID) { - handleElement(debugID, ReactComponentTreeHook.getElement(debugID)); - }, - onUpdateComponent: function onUpdateComponent(debugID) { - handleElement(debugID, ReactComponentTreeHook.getElement(debugID)); - } - }; - - module.exports = ReactChildrenMutationWarningHook; - -/***/ }, -/* 67 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -8797,7 +8577,7 @@ return /******/ (function(modules) { // webpackBootstrap * @typechecks */ - var performance = __webpack_require__(68); + var performance = __webpack_require__(67); var performanceNow; @@ -8819,7 +8599,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = performanceNow; /***/ }, -/* 68 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8835,7 +8615,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var ExecutionEnvironment = __webpack_require__(49); + var ExecutionEnvironment = __webpack_require__(48); var performance; @@ -8846,7 +8626,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = performance || {}; /***/ }, -/* 69 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { /** @@ -8857,15 +8637,17 @@ return /******/ (function(modules) { // webpackBootstrap * 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 Transaction + * */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); var invariant = __webpack_require__(7); + var OBSERVED_ERROR = {}; + /** * `Transaction` creates a black box that is able to wrap any method such that * certain invariants are maintained before and after the method is invoked @@ -8927,7 +8709,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @class Transaction */ - var Mixin = { + var TransactionImpl = { /** * Sets up this instance so that it is prepared for collecting metrics. Does * so such that this setup method may be used on an instance that is already @@ -8975,7 +8757,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {*} Return value from `method`. */ perform: function perform(method, scope, a, b, c, d, e, f) { - !!this.isInTransaction() ? (undefined) !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; + !!this.isInTransaction() ? true ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; var errorThrown; var ret; try { @@ -9017,10 +8799,10 @@ return /******/ (function(modules) { // webpackBootstrap // OBSERVED_ERROR state before overwriting it with the real return value // of initialize -- if it's still set to OBSERVED_ERROR in the finally // block, it means wrapper.initialize threw. - this.wrapperInitData[i] = Transaction.OBSERVED_ERROR; + this.wrapperInitData[i] = OBSERVED_ERROR; this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; } finally { - if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) { + if (this.wrapperInitData[i] === OBSERVED_ERROR) { // The initializer for wrapper i threw an error; initialize the // remaining wrappers but silence any exceptions from them to ensure // that the first error is the one to bubble up. @@ -9039,7 +8821,7 @@ return /******/ (function(modules) { // webpackBootstrap * invoked). */ closeAll: function closeAll(startIndex) { - !this.isInTransaction() ? (undefined) !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0; + !this.isInTransaction() ? true ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0; var transactionWrappers = this.transactionWrappers; for (var i = startIndex; i < transactionWrappers.length; i++) { var wrapper = transactionWrappers[i]; @@ -9051,7 +8833,7 @@ return /******/ (function(modules) { // webpackBootstrap // close -- if it's still set to true in the finally block, it means // wrapper.close threw. errorThrown = true; - if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) { + if (initData !== OBSERVED_ERROR && wrapper.close) { wrapper.close.call(this, initData); } errorThrown = false; @@ -9070,21 +8852,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - var Transaction = { - - Mixin: Mixin, - - /** - * Token to look for to determine if an error occurred. - */ - OBSERVED_ERROR: {} - - }; - - module.exports = Transaction; + module.exports = TransactionImpl; /***/ }, -/* 70 */ +/* 69 */ /***/ function(module, exports) { /** @@ -9095,7 +8866,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 getEventTarget */ 'use strict'; @@ -9124,7 +8894,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = getEventTarget; /***/ }, -/* 71 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9135,12 +8905,11 @@ return /******/ (function(modules) { // webpackBootstrap * 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 isEventSupported */ 'use strict'; - var ExecutionEnvironment = __webpack_require__(49); + var ExecutionEnvironment = __webpack_require__(48); var useHasFeature; if (ExecutionEnvironment.canUseDOM) { @@ -9189,7 +8958,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = isEventSupported; /***/ }, -/* 72 */ +/* 71 */ /***/ function(module, exports) { /** @@ -9200,7 +8969,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 isTextInputElement * */ @@ -9245,8 +9013,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = isTextInputElement; /***/ }, -/* 73 */ -/***/ function(module, exports, __webpack_require__) { +/* 72 */ +/***/ function(module, exports) { /** * Copyright 2013-present, Facebook, Inc. @@ -9256,13 +9024,10 @@ return /******/ (function(modules) { // webpackBootstrap * 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 DefaultEventPluginOrder */ 'use strict'; - var keyOf = __webpack_require__(24); - /** * Module that is injectable into `EventPluginHub`, that specifies a * deterministic ordering of `EventPlugin`s. A convenient way to reason about @@ -9272,12 +9037,13 @@ return /******/ (function(modules) { // webpackBootstrap * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that * preventing default on events is convenient in `SimpleEventPlugin` handlers. */ - var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })]; + + var DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin']; module.exports = DefaultEventPluginOrder; /***/ }, -/* 74 */ +/* 73 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9288,28 +9054,22 @@ return /******/ (function(modules) { // webpackBootstrap * 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 EnterLeaveEventPlugin */ 'use strict'; - var EventConstants = __webpack_require__(41); - var EventPropagators = __webpack_require__(42); - var ReactDOMComponentTree = __webpack_require__(36); - var SyntheticMouseEvent = __webpack_require__(75); - - var keyOf = __webpack_require__(24); - - var topLevelTypes = EventConstants.topLevelTypes; + var EventPropagators = __webpack_require__(41); + var ReactDOMComponentTree = __webpack_require__(34); + var SyntheticMouseEvent = __webpack_require__(74); var eventTypes = { mouseEnter: { - registrationName: keyOf({ onMouseEnter: null }), - dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] + registrationName: 'onMouseEnter', + dependencies: ['topMouseOut', 'topMouseOver'] }, mouseLeave: { - registrationName: keyOf({ onMouseLeave: null }), - dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] + registrationName: 'onMouseLeave', + dependencies: ['topMouseOut', 'topMouseOver'] } }; @@ -9325,10 +9085,10 @@ return /******/ (function(modules) { // webpackBootstrap * the `mouseover` top-level event. */ extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { + if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { return null; } - if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) { + if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') { // Must not be a mouse in or mouse out - ignoring. return null; } @@ -9349,7 +9109,7 @@ return /******/ (function(modules) { // webpackBootstrap var from; var to; - if (topLevelType === topLevelTypes.topMouseOut) { + if (topLevelType === 'topMouseOut') { from = targetInst; var related = nativeEvent.relatedTarget || nativeEvent.toElement; to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null; @@ -9387,7 +9147,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = EnterLeaveEventPlugin; /***/ }, -/* 75 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9398,15 +9158,14 @@ return /******/ (function(modules) { // webpackBootstrap * 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 SyntheticMouseEvent */ 'use strict'; - var SyntheticUIEvent = __webpack_require__(76); - var ViewportMetrics = __webpack_require__(77); + var SyntheticUIEvent = __webpack_require__(75); + var ViewportMetrics = __webpack_require__(76); - var getEventModifierState = __webpack_require__(78); + var getEventModifierState = __webpack_require__(77); /** * @interface MouseEvent @@ -9464,7 +9223,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = SyntheticMouseEvent; /***/ }, -/* 76 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9475,14 +9234,13 @@ return /******/ (function(modules) { // webpackBootstrap * 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 SyntheticUIEvent */ 'use strict'; var SyntheticEvent = __webpack_require__(53); - var getEventTarget = __webpack_require__(70); + var getEventTarget = __webpack_require__(69); /** * @interface UIEvent @@ -9528,7 +9286,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = SyntheticUIEvent; /***/ }, -/* 77 */ +/* 76 */ /***/ function(module, exports) { /** @@ -9539,7 +9297,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ViewportMetrics */ 'use strict'; @@ -9560,7 +9317,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ViewportMetrics; /***/ }, -/* 78 */ +/* 77 */ /***/ function(module, exports) { /** @@ -9571,7 +9328,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 getEventModifierState */ 'use strict'; @@ -9608,7 +9364,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = getEventModifierState; /***/ }, -/* 79 */ +/* 78 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9619,12 +9375,11 @@ return /******/ (function(modules) { // webpackBootstrap * 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 HTMLDOMPropertyConfig */ 'use strict'; - var DOMProperty = __webpack_require__(37); + var DOMProperty = __webpack_require__(36); var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; @@ -9825,7 +9580,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = HTMLDOMPropertyConfig; /***/ }, -/* 80 */ +/* 79 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9836,13 +9591,12 @@ return /******/ (function(modules) { // webpackBootstrap * 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 ReactComponentBrowserEnvironment */ 'use strict'; - var DOMChildrenOperations = __webpack_require__(81); - var ReactDOMIDOperations = __webpack_require__(93); + var DOMChildrenOperations = __webpack_require__(80); + var ReactDOMIDOperations = __webpack_require__(91); /** * Abstracts away all functionality of the reconciler that requires knowledge of @@ -9860,7 +9614,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ReactComponentBrowserEnvironment; /***/ }, -/* 81 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9871,20 +9625,18 @@ return /******/ (function(modules) { // webpackBootstrap * 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 DOMChildrenOperations */ 'use strict'; - var DOMLazyTree = __webpack_require__(82); - var Danger = __webpack_require__(88); - var ReactMultiChildUpdateTypes = __webpack_require__(92); - var ReactDOMComponentTree = __webpack_require__(36); + var DOMLazyTree = __webpack_require__(81); + var Danger = __webpack_require__(87); + var ReactDOMComponentTree = __webpack_require__(34); var ReactInstrumentation = __webpack_require__(62); - var createMicrosoftUnsafeLocalFunction = __webpack_require__(85); - var setInnerHTML = __webpack_require__(84); - var setTextContent = __webpack_require__(86); + var createMicrosoftUnsafeLocalFunction = __webpack_require__(84); + var setInnerHTML = __webpack_require__(83); + var setTextContent = __webpack_require__(85); function getNodeAfter(parentNode, node) { // Special case for text components, which return [open, close] comments @@ -9976,21 +9728,33 @@ return /******/ (function(modules) { // webpackBootstrap } } - if ((undefined) !== 'production') { - ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, 'replace text', stringText); + if (true) { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, + type: 'replace text', + payload: stringText + }); } } var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup; - if ((undefined) !== 'production') { + if (true) { dangerouslyReplaceNodeWithMarkup = function dangerouslyReplaceNodeWithMarkup(oldChild, markup, prevInstance) { Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup); if (prevInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onHostOperation(prevInstance._debugID, 'replace with', markup.toString()); + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: prevInstance._debugID, + type: 'replace with', + payload: markup.toString() + }); } else { var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node); if (nextInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onHostOperation(nextInstance._debugID, 'mount', markup.toString()); + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: nextInstance._debugID, + type: 'mount', + payload: markup.toString() + }); } } }; @@ -10013,41 +9777,61 @@ return /******/ (function(modules) { // webpackBootstrap * @internal */ processUpdates: function processUpdates(parentNode, updates) { - if ((undefined) !== 'production') { + if (true) { var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID; } for (var k = 0; k < updates.length; k++) { var update = updates[k]; switch (update.type) { - case ReactMultiChildUpdateTypes.INSERT_MARKUP: + case 'INSERT_MARKUP': insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode)); - if ((undefined) !== 'production') { - ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'insert child', { toIndex: update.toIndex, content: update.content.toString() }); + if (true) { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: parentNodeDebugID, + type: 'insert child', + payload: { toIndex: update.toIndex, content: update.content.toString() } + }); } break; - case ReactMultiChildUpdateTypes.MOVE_EXISTING: + case 'MOVE_EXISTING': moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode)); - if ((undefined) !== 'production') { - ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'move child', { fromIndex: update.fromIndex, toIndex: update.toIndex }); + if (true) { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: parentNodeDebugID, + type: 'move child', + payload: { fromIndex: update.fromIndex, toIndex: update.toIndex } + }); } break; - case ReactMultiChildUpdateTypes.SET_MARKUP: + case 'SET_MARKUP': setInnerHTML(parentNode, update.content); - if ((undefined) !== 'production') { - ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace children', update.content.toString()); + if (true) { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: parentNodeDebugID, + type: 'replace children', + payload: update.content.toString() + }); } break; - case ReactMultiChildUpdateTypes.TEXT_CONTENT: + case 'TEXT_CONTENT': setTextContent(parentNode, update.content); - if ((undefined) !== 'production') { - ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace text', update.content.toString()); + if (true) { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: parentNodeDebugID, + type: 'replace text', + payload: update.content.toString() + }); } break; - case ReactMultiChildUpdateTypes.REMOVE_NODE: + case 'REMOVE_NODE': removeChild(parentNode, update.fromNode); - if ((undefined) !== 'production') { - ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'remove child', { fromIndex: update.fromIndex }); + if (true) { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: parentNodeDebugID, + type: 'remove child', + payload: { fromIndex: update.fromIndex } + }); } break; } @@ -10059,7 +9843,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DOMChildrenOperations; /***/ }, -/* 82 */ +/* 81 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10070,16 +9854,15 @@ return /******/ (function(modules) { // webpackBootstrap * 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 DOMLazyTree */ 'use strict'; - var DOMNamespaces = __webpack_require__(83); - var setInnerHTML = __webpack_require__(84); + var DOMNamespaces = __webpack_require__(82); + var setInnerHTML = __webpack_require__(83); - var createMicrosoftUnsafeLocalFunction = __webpack_require__(85); - var setTextContent = __webpack_require__(86); + var createMicrosoftUnsafeLocalFunction = __webpack_require__(84); + var setTextContent = __webpack_require__(85); var ELEMENT_NODE_TYPE = 1; var DOCUMENT_FRAGMENT_NODE_TYPE = 11; @@ -10182,7 +9965,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DOMLazyTree; /***/ }, -/* 83 */ +/* 82 */ /***/ function(module, exports) { /** @@ -10193,7 +9976,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 DOMNamespaces */ 'use strict'; @@ -10207,7 +9989,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DOMNamespaces; /***/ }, -/* 84 */ +/* 83 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10218,18 +10000,17 @@ return /******/ (function(modules) { // webpackBootstrap * 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 setInnerHTML */ 'use strict'; - var ExecutionEnvironment = __webpack_require__(49); - var DOMNamespaces = __webpack_require__(83); + var ExecutionEnvironment = __webpack_require__(48); + var DOMNamespaces = __webpack_require__(82); var WHITESPACE_TEST = /^[ \r\n\t\f]/; var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; - var createMicrosoftUnsafeLocalFunction = __webpack_require__(85); + var createMicrosoftUnsafeLocalFunction = __webpack_require__(84); // SVG temp container for IE lacking innerHTML var reusableSVGContainer; @@ -10310,7 +10091,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = setInnerHTML; /***/ }, -/* 85 */ +/* 84 */ /***/ function(module, exports) { /** @@ -10321,7 +10102,6 @@ return /******/ (function(modules) { // webpackBootstrap * 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 createMicrosoftUnsafeLocalFunction */ /* globals MSApp */ @@ -10347,7 +10127,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = createMicrosoftUnsafeLocalFunction; /***/ }, -/* 86 */ +/* 85 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10358,14 +10138,13 @@ return /******/ (function(modules) { // webpackBootstrap * 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 setTextContent */ 'use strict'; - var ExecutionEnvironment = __webpack_require__(49); - var escapeTextContentForBrowser = __webpack_require__(87); - var setInnerHTML = __webpack_require__(84); + var ExecutionEnvironment = __webpack_require__(48); + var escapeTextContentForBrowser = __webpack_require__(86); + var setInnerHTML = __webpack_require__(83); /** * Set the textContent property of a node, ensuring that whitespace is preserved @@ -10392,6 +10171,10 @@ return /******/ (function(modules) { // webpackBootstrap if (ExecutionEnvironment.canUseDOM) { if (!('textContent' in document.documentElement)) { setTextContent = function setTextContent(node, text) { + if (node.nodeType === 3) { + node.nodeValue = text; + return; + } setInnerHTML(node, escapeTextContentForBrowser(text)); }; } @@ -10400,7 +10183,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = setTextContent; /***/ }, -/* 87 */ +/* 86 */ /***/ function(module, exports) { /** @@ -10436,7 +10219,6 @@ return /******/ (function(modules) { // webpackBootstrap * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * @providesModule escapeTextContentForBrowser */ 'use strict'; @@ -10528,7 +10310,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = escapeTextContentForBrowser; /***/ }, -/* 88 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10539,17 +10321,16 @@ return /******/ (function(modules) { // webpackBootstrap * 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 Danger */ 'use strict'; - var _prodInvariant = __webpack_require__(6); + var _prodInvariant = __webpack_require__(35); - var DOMLazyTree = __webpack_require__(82); - var ExecutionEnvironment = __webpack_require__(49); + var DOMLazyTree = __webpack_require__(81); + var ExecutionEnvironment = __webpack_require__(48); - var createNodesFromMarkup = __webpack_require__(89); + var createNodesFromMarkup = __webpack_require__(88); var emptyFunction = __webpack_require__(11); var invariant = __webpack_require__(7); @@ -10564,9 +10345,9 @@ return /******/ (function(modules) { // webpackBootstrap * @internal */ dangerouslyReplaceNodeWithMarkup: function dangerouslyReplaceNodeWithMarkup(oldChild, markup) { - !ExecutionEnvironment.canUseDOM ? (undefined) !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0; - !markup ? (undefined) !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0; - !(oldChild.nodeName !== 'HTML') ? (undefined) !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0; + !ExecutionEnvironment.canUseDOM ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0; + !markup ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0; + !(oldChild.nodeName !== 'HTML') ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0; if (typeof markup === 'string') { var newChild = createNodesFromMarkup(markup, emptyFunction)[0]; @@ -10581,7 +10362,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Danger; /***/ }, -/* 89 */ +/* 88 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -10599,10 +10380,10 @@ return /******/ (function(modules) { // webpackBootstrap /*eslint-disable fb-www/unsafe-html*/ - var ExecutionEnvironment = __webpack_require__(49); + var ExecutionEnvironment = __webpack_require__(48); - var createArrayFromMixed = __webpack_require__(90); - var getMarkupWrap = __webpack_require__(91); + var createArrayFromMixed = __webpack_require__(89); + var getMarkupWrap = __webpack_require__(90); var invariant = __webpack_require__(7); /** @@ -10638,7 +10419,7 @@ return /******/ (function(modules) { // webpackBootstrap */ function createNodesFromMarkup(markup, handleScript) { var node = dummyNode; - !!!dummyNode ? (undefined) !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0; + !!!dummyNode ? true ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0; var nodeName = getNodeName(markup); var wrap = nodeName && getMarkupWrap(nodeName); @@ -10655,7 +10436,7 @@ return /******/ (function(modules) { // webpackBootstrap var scripts = node.getElementsByTagName('script'); if (scripts.length) { - !handleScript ? (undefined) !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected diff --git a/docs/coverage/lcov-report/Tags.js.html b/docs/coverage/lcov-report/Tags.js.html index 01c9398..b3c2534 100644 --- a/docs/coverage/lcov-report/Tags.js.html +++ b/docs/coverage/lcov-report/Tags.js.html @@ -20,24 +20,24 @@

    - 91.46% + 95.74% Statements - 75/82 + 45/47
    - 71.88% + 88.24% Branches - 46/64 + 30/34
    100% Functions - 19/19 + 11/11
    100% Lines - 44/44 + 43/43
    @@ -218,14 +218,15 @@

    173 174 175 -1765x +176  +  +  +          -23x   -1x       @@ -269,14 +270,13 @@

      23x   -1x     10x 2x     -  +9x   9x   @@ -295,7 +295,7 @@

    2x     -  +8x       @@ -304,7 +304,7 @@

    4x   4x -  +8x   4x 2x @@ -375,7 +375,7 @@

          -  +68x     49x @@ -389,16 +389,16 @@

          -1x       - 
    'use strict';IEE
    + 
    + 
    'use strict';
      
     import React, { Component, PropTypes } from 'react';
     import Tag from './Tag';
      
    -import '../scss/styles.scss';EIIIE
    +import '../scss/styles.scss';
      
     class Tags extends Component {
     	state = {
    @@ -442,7 +442,7 @@ 

    readOnly: false };   - constructor(props){ + constructor(props){ super(props); }   @@ -456,7 +456,7 @@

    const value = this.input.value.trim();   if (uniqueTags){ - iEf (this.state.tags.indexOf(value) >= 0) return; + Eif (this.state.tags.indexOf(value) >= 0) return; }   this.setState({ @@ -494,7 +494,7 @@

    onInputKey(e){ switch (e.keyCode){ case Tags.KEYS.backspace: - iIf (this.state.tags.length === 0) return; + Iif (this.state.tags.length === 0) return;   if (this.input.value === ''){ this.removeTag(this.state.tags.length - 1); @@ -503,9 +503,9 @@

    break;   default: - iIf (this.input.value === '') return; + Iif (this.input.value === '') return;   - iEf (this.props.addKeys.indexOf(e.keyCode) !== -1){ + Eif (this.props.addKeys.indexOf(e.keyCode) !== -1){ if (Tags.KEYS.enter !== e.keyCode){ e.preventDefault(); } @@ -574,7 +574,7 @@

    diff --git a/docs/coverage/lcov-report/index.html b/docs/coverage/lcov-report/index.html index a993497..348eadd 100644 --- a/docs/coverage/lcov-report/index.html +++ b/docs/coverage/lcov-report/index.html @@ -20,24 +20,24 @@

    - 92.22% + 96.3% Statements - 83/90 + 52/54
    - 73.24% + 89.47% Branches - 52/71 + 34/38
    100% Functions - 22/22 + 13/13
    100% Lines - 52/52 + 50/50
    @@ -62,26 +62,26 @@

    Tag.js
    100% - 8/8 - 85.71% - 6/7 + 7/7 100% - 3/3 + 4/4 100% - 8/8 + 2/2 + 100% + 7/7 Tags.js -
    - 91.46% - 75/82 - 71.88% - 46/64 +
    + 95.74% + 45/47 + 88.24% + 30/34 100% - 19/19 + 11/11 100% - 44/44 + 43/43 @@ -90,7 +90,7 @@

    diff --git a/docs/coverage/lcov.info b/docs/coverage/lcov.info index 7206ec1..c917fb0 100644 --- a/docs/coverage/lcov.info +++ b/docs/coverage/lcov.info @@ -1,14 +1,11 @@ TN: SF:/Users/Rinzler/Projects/Personal/react-tagging-input/src/component/js/Tag.js -FN:3,_interopRequireDefault -FN:5,Tag -FN:6,onRemoveClick -FNF:3 -FNH:3 -FNDA:2,_interopRequireDefault -FNDA:95,Tag -FNDA:2,onRemoveClick -DA:3,2 +FN:5,(anonymous_0) +FN:6,(anonymous_1) +FNF:2 +FNH:2 +FNDA:95,(anonymous_0) +FNDA:2,(anonymous_1) DA:5,2 DA:6,95 DA:7,2 @@ -16,67 +13,45 @@ DA:9,2 DA:12,95 DA:18,95 DA:28,2 -LF:8 -LH:8 -BRDA:3,0,0,0 -BRDA:3,0,1,2 -BRDA:3,1,0,2 -BRDA:3,1,1,2 -BRDA:12,2,0,1 -BRDA:14,3,0,94 -BRDA:14,3,1,92 -BRF:7 -BRH:6 +LF:7 +LH:7 +BRDA:12,0,0,94 +BRDA:12,0,1,1 +BRDA:14,1,0,94 +BRDA:14,1,1,92 +BRF:4 +BRH:4 end_of_record TN: SF:/Users/Rinzler/Projects/Personal/react-tagging-input/src/component/js/Tags.js -FN:1,(anonymous_0) -FN:1,defineProperties -FN:1,(anonymous_2) -FN:6,_toConsumableArray -FN:6,_classCallCheck -FN:6,_possibleConstructorReturn -FN:6,_inherits -FN:8,(anonymous_7) -FN:50,Tags -FN:52,addTag -FN:69,(anonymous_10) -FN:80,removeTag -FN:87,(anonymous_12) -FN:88,(anonymous_13) -FN:97,onInputKey -FN:123,onInputChange -FN:135,render -FN:140,(anonymous_17) -FN:158,ref -FNF:19 -FNH:19 -FNDA:1,(anonymous_0) -FNDA:1,defineProperties -FNDA:1,(anonymous_2) -FNDA:8,_toConsumableArray -FNDA:23,_classCallCheck -FNDA:23,_possibleConstructorReturn -FNDA:1,_inherits -FNDA:1,(anonymous_7) -FNDA:23,Tags -FNDA:10,addTag -FNDA:8,(anonymous_10) -FNDA:4,removeTag -FNDA:8,(anonymous_12) -FNDA:4,(anonymous_13) -FNDA:14,onInputKey -FNDA:14,onInputChange -FNDA:49,render -FNDA:102,(anonymous_17) -FNDA:68,ref -DA:1,5 -DA:6,23 -DA:8,1 -DA:50,23 -DA:52,1 +FN:50,(anonymous_0) +FN:54,(anonymous_1) +FN:69,(anonymous_2) +FN:82,(anonymous_3) +FN:87,(anonymous_4) +FN:88,(anonymous_5) +FN:99,(anonymous_6) +FN:125,(anonymous_7) +FN:137,(anonymous_8) +FN:140,(anonymous_9) +FN:158,(anonymous_10) +FNF:11 +FNH:11 +FNDA:23,(anonymous_0) +FNDA:10,(anonymous_1) +FNDA:8,(anonymous_2) +FNDA:4,(anonymous_3) +FNDA:8,(anonymous_4) +FNDA:4,(anonymous_5) +FNDA:14,(anonymous_6) +FNDA:14,(anonymous_7) +FNDA:49,(anonymous_8) +FNDA:102,(anonymous_9) +FNDA:68,(anonymous_10) +DA:51,23 DA:55,10 DA:56,2 +DA:59,9 DA:61,9 DA:63,9 DA:64,1 @@ -85,9 +60,11 @@ DA:70,8 DA:71,2 DA:74,8 DA:75,2 +DA:78,8 DA:83,4 DA:84,4 DA:86,4 +DA:87,8 DA:89,4 DA:90,2 DA:93,4 @@ -111,75 +88,45 @@ DA:138,49 DA:140,49 DA:141,102 DA:149,49 +DA:158,68 DA:161,49 DA:163,49 -DA:172,1 -LF:44 -LH:44 -BRDA:1,0,0,5 -BRDA:1,0,1,5 -BRDA:1,1,0,5 -BRDA:1,1,1,0 -BRDA:1,2,0,1 -BRDA:1,2,1,0 -BRDA:1,3,0,0 -BRDA:1,3,1,1 -BRDA:6,4,0,8 -BRDA:6,4,1,0 -BRDA:6,5,0,0 -BRDA:6,5,1,23 -BRDA:6,6,0,0 -BRDA:6,6,1,23 -BRDA:6,7,0,0 -BRDA:6,7,1,23 -BRDA:6,8,0,23 -BRDA:6,8,1,0 -BRDA:6,8,2,0 -BRDA:6,9,0,0 -BRDA:6,9,1,1 -BRDA:6,10,0,1 -BRDA:6,10,1,0 -BRDA:6,11,0,1 -BRDA:6,11,1,1 -BRDA:6,12,0,1 -BRDA:6,12,1,0 -BRDA:6,13,0,1 -BRDA:6,13,1,0 -BRDA:50,14,0,23 -BRDA:50,14,1,0 -BRDA:55,15,0,2 -BRDA:55,15,1,8 -BRDA:56,16,0,1 -BRDA:56,16,1,1 -BRDA:63,17,0,1 -BRDA:63,17,1,8 -BRDA:64,18,0,1 -BRDA:64,18,1,0 -BRDA:70,19,0,2 -BRDA:70,19,1,6 -BRDA:74,20,0,2 -BRDA:74,20,1,6 -BRDA:89,21,0,2 -BRDA:89,21,1,2 -BRDA:93,22,0,2 -BRDA:93,22,1,2 -BRDA:100,23,0,4 -BRDA:100,23,1,10 -BRDA:102,24,0,0 -BRDA:102,24,1,4 -BRDA:104,25,0,3 -BRDA:104,25,1,1 -BRDA:111,26,0,0 -BRDA:111,26,1,10 -BRDA:113,27,0,10 -BRDA:113,27,1,0 -BRDA:114,28,0,3 -BRDA:114,28,1,7 -BRDA:128,29,0,5 -BRDA:128,29,1,9 -BRDA:149,30,0,2 -BRDA:161,31,0,2 -BRDA:161,31,1,47 -BRF:64 -BRH:46 +LF:43 +LH:43 +BRDA:55,0,0,2 +BRDA:55,0,1,8 +BRDA:56,1,0,1 +BRDA:56,1,1,1 +BRDA:63,2,0,1 +BRDA:63,2,1,8 +BRDA:64,3,0,1 +BRDA:64,3,1,0 +BRDA:70,4,0,2 +BRDA:70,4,1,6 +BRDA:74,5,0,2 +BRDA:74,5,1,6 +BRDA:89,6,0,2 +BRDA:89,6,1,2 +BRDA:93,7,0,2 +BRDA:93,7,1,2 +BRDA:100,8,0,4 +BRDA:100,8,1,10 +BRDA:102,9,0,0 +BRDA:102,9,1,4 +BRDA:104,10,0,3 +BRDA:104,10,1,1 +BRDA:111,11,0,0 +BRDA:111,11,1,10 +BRDA:113,12,0,10 +BRDA:113,12,1,0 +BRDA:114,13,0,3 +BRDA:114,13,1,7 +BRDA:128,14,0,5 +BRDA:128,14,1,9 +BRDA:149,15,0,47 +BRDA:149,15,1,2 +BRDA:161,16,0,2 +BRDA:161,16,1,47 +BRF:34 +BRH:30 end_of_record diff --git a/docs/styles.css b/docs/styles.css index 1198c85..2b5f500 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -1,7 +1,6 @@ .react-tags input, .react-tags__container > li { font-size: 12px; height: 26px; - line-height: 26px; color: #626166; border-radius: 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -37,7 +36,6 @@ background: #FFF; border: 1px solid #D9D8DD; height: 24px; - line-height: 24px; margin-top: 5px; } .react-tags input::-webkit-input-placeholder { color: rgba(98, 97, 102, 0.5); } @@ -45,6 +43,8 @@ color: rgba(98, 97, 102, 0.5); } .react-tags input:-ms-input-placeholder { color: rgba(98, 97, 102, 0.5); } + .react-tags input::-ms-clear { + display: none; } .react-tags input:focus { outline: none; border-color: #b1afb9; } @@ -56,6 +56,9 @@ list-style: none; } .react-tags__container > li { + line-height: 26px; + -webkit-transform: translate3d(0, 0, 0); + -webkit-font-smoothing: antialiased; -webkit-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1); -moz-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1); -o-animation: slide-left 0.8s cubic-bezier(0.19, 1, 0.22, 1); diff --git a/package.json b/package.json index 60d8bc0..c1964a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-tagging-input", - "version": "1.6.5", + "version": "1.7.5", "description": "Simple tagging component", "main": "dist/react-tags.js", "license": "MIT", @@ -13,65 +13,68 @@ "email": "jfusco311@gmail.com" }, "peerDependencies": { - "react": "^15.3.2" + "react": "^15.4.1" }, "devDependencies": { "babel-cli": "^6.18.0", - "babel-core": "^6.18.2", - "babel-eslint": "^7.1.0", - "babel-jest": "^16.0.0", - "babel-loader": "^6.2.7", - "babel-plugin-transform-class-properties": "^6.18.0", + "babel-core": "^6.21.0", + "babel-eslint": "^7.1.1", + "babel-jest": "^18.0.0", + "babel-loader": "^6.2.10", + "babel-plugin-transform-class-properties": "^6.19.0", "babel-plugin-transform-function-bind": "^6.8.0", - "babel-plugin-transform-object-rest-spread": "^6.16.0", + "babel-plugin-transform-object-rest-spread": "^6.20.2", "babel-preset-es2015": "^6.18.0", "babel-preset-react": "^6.16.0", "babel-register": "^6.18.0", - "copy-webpack-plugin": "^4.0.0", + "copy-webpack-plugin": "^4.0.1", "cross-env": "^3.1.3", - "css-loader": "^0.25.0", + "css-loader": "^0.26.1", "del": "^2.2.1", "extract-text-webpack-plugin": "^1.0.1", "gulp": "^3.9.1", - "gulp-clean-css": "^2.0.11", + "gulp-clean-css": "^2.3.2", "gulp-filelog": "~0.4.1", "gulp-load-plugins": "^1.4.0", "gulp-rename": "^1.2.2", - "gulp-sass": "^2.3.2", + "gulp-sass": "^3.0.0", "gulp-scss-lint": "^0.4.0", "gulp-scss-lint-stylish": "^1.0.1", - "gulp-util": "~3.0.7", - "jest-cli": "^16.0.2", - "node-sass": "^3.11.2", - "react": "^15.2.1", - "react-addons-test-utils": "^15.3.2", - "react-addons-update": "^15.3.2", - "react-dom": "^15.3.2", + "gulp-util": "^3.0.8", + "jest-cli": "^18.1.0", + "node-sass": "^4.1.1", + "react": "^15.4.1", + "react-addons-test-utils": "^15.4.1", + "react-addons-update": "^15.4.1", + "react-dom": "^15.4.1", "run-sequence": "^1.2.1", - "sass-loader": "^4.0.2", + "sass-loader": "^4.1.1", "style-loader": "^0.13.1", - "webpack": "^1.13.3", - "webpack-babel-jest": "^1.0.4", + "webpack": "^1.14.0", "webpack-dev-server": "^1.16.2" }, "scripts": { "test": "jest --coverage", "lint": "eslint --fix --color --debug --ignore-path .eslintignore ./src/component/js/*", - "start": "cross-env NODE_ENV=dev webpack-dev-server --config ./webpack.config.babel.js --hot --inline", + "start": "cross-env NODE_ENV=development webpack-dev-server --config ./webpack.config.babel.js --hot --inline", "start-docs": "webpack-dev-server --config ./webpack.config.example.babel.js --hot --inline", "build-docs": "webpack --config ./webpack.config.example.babel.js", - "build": "gulp && npm run lint && npm test && cross-env NODE_ENV=prod webpack --config ./webpack.config.babel.js --display-chunks --display-modules --progress --colors && npm run build-docs" + "build": "gulp && npm run lint && npm test && cross-env NODE_ENV=production webpack --config ./webpack.config.babel.js --display-chunks --display-modules --progress --colors && npm run build-docs" }, "jest": { - "scriptPreprocessor": "/node_modules/webpack-babel-jest", - "moduleFileExtensions": [ - "js", - "json", - "es6" + "moduleFileExtensions": ["js", "json", "es6"], + "moduleDirectories": ["node_modules"], + "moduleNameMapper": { + "\\.(css|scss)$": "/__mocks__/styleMock.js" + }, + "unmockedModulePathPatterns": [ + "/node_modules/react", + "/node_modules/react-dom", + "/node_modules/react-addons-test-utils" ], - "testPathIgnorePatterns": [ - "/node_modules/" - ] + "globals": { + "__DEV__": true + } }, "keywords": [ "react", diff --git a/src/component/scss/_base.scss b/src/component/scss/_base.scss index fec0794..7416ae8 100644 --- a/src/component/scss/_base.scss +++ b/src/component/scss/_base.scss @@ -5,7 +5,6 @@ %tags-ui-base { font-size: $tag-base-font-size; height: $tag-base-height; - line-height: $tag-base-height; color: $tag-base-font-color; border-radius: $tag-base-border-radius; font-family: $tag-base-font-family; diff --git a/src/component/scss/_input.scss b/src/component/scss/_input.scss index b7597e2..5847ff7 100644 --- a/src/component/scss/_input.scss +++ b/src/component/scss/_input.scss @@ -12,7 +12,6 @@ background: $tag-input-bg-color; border: $tag-input-border; height: $height; - line-height: $height; margin-top: $tag-base-margin; &::-webkit-input-placeholder { @@ -27,6 +26,10 @@ color: $tag-input-placeholder-color; } + &::-ms-clear { + display: none; + } + &:focus { outline: none; border-color: $tag-input-border-focus-color; diff --git a/src/component/scss/_tag.scss b/src/component/scss/_tag.scss index 095bbac..fd07464 100644 --- a/src/component/scss/_tag.scss +++ b/src/component/scss/_tag.scss @@ -7,6 +7,9 @@ > li { @extend %tags-ui-base; + line-height: $tag-base-height; + -webkit-transform: translate3d(0, 0, 0); + -webkit-font-smoothing: antialiased; -webkit-animation: $tag-intro-animation; -moz-animation: $tag-intro-animation; -o-animation: $tag-intro-animation; diff --git a/webpack.config.babel.js b/webpack.config.babel.js index 7b08168..5dfc04d 100644 --- a/webpack.config.babel.js +++ b/webpack.config.babel.js @@ -9,7 +9,7 @@ import output from './webpack/output'; const { NODE_ENV } = process.env; const config = { - devtool: NODE_ENV === 'prod' ? 'source-map' : 'eval', + devtool: NODE_ENV === 'production' ? 'source-map' : 'eval', entry, output, module: { @@ -21,7 +21,7 @@ const config = { } }; -if(NODE_ENV === 'prod'){ +if(NODE_ENV === 'production'){ config.externals = { 'react': { root: 'React', diff --git a/webpack.config.example.babel.js b/webpack.config.example.babel.js index 245733c..208c270 100644 --- a/webpack.config.example.babel.js +++ b/webpack.config.example.babel.js @@ -43,7 +43,9 @@ module.exports = { { from: './coverage', to: './coverage' } ]), new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) + 'process.env': { + 'NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development') + } }) ], devServer: { diff --git a/webpack/entry.js b/webpack/entry.js index 1a3cd78..6fe6dd2 100644 --- a/webpack/entry.js +++ b/webpack/entry.js @@ -7,7 +7,7 @@ const { entry, fileName } = config.scripts; const { NODE_ENV } = process.env; const entryFile = {}; -if(NODE_ENV === 'prod'){ +if(NODE_ENV === 'production'){ entryFile[fileName] = `./src/component/js/${entry}.js`; }else{ entryFile.index = './src/component/'; diff --git a/webpack/loaders.js b/webpack/loaders.js index 0f1177f..4235797 100644 --- a/webpack/loaders.js +++ b/webpack/loaders.js @@ -13,7 +13,7 @@ const loaders = [ } ]; -if(NODE_ENV === 'prod'){ +if(NODE_ENV === 'production'){ loaders.push({ loader: ExtractTextPlugin.extract( 'style', diff --git a/webpack/output.js b/webpack/output.js index aa801ae..74eb940 100644 --- a/webpack/output.js +++ b/webpack/output.js @@ -13,7 +13,7 @@ let output = { publicPath: '/' }; -if(NODE_ENV === 'prod'){ +if(NODE_ENV === 'production'){ Object.assign(output, { libraryTarget: 'umd', library diff --git a/webpack/plugins.js b/webpack/plugins.js index 7446d63..78575c2 100644 --- a/webpack/plugins.js +++ b/webpack/plugins.js @@ -10,11 +10,14 @@ const plugins = [ new webpack.NoErrorsPlugin(), new webpack.optimize.DedupePlugin(), new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development') + '__DEV__': process.env.NODE_ENV === 'development', + 'process.env': { + 'NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development') + } }) ]; -if(NODE_ENV === 'prod'){ +if(NODE_ENV === 'production'){ plugins.push( new ExtractTextPlugin('styles.css') );