diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/common.css.map | 2 | ||||
-rw-r--r-- | examples/common.js | 11752 | ||||
-rw-r--r-- | examples/common.js.map | 2 | ||||
-rw-r--r-- | examples/disabled.html | 13 | ||||
-rw-r--r-- | examples/disabled.js | 6 | ||||
-rw-r--r-- | examples/disabled.js.map | 2 | ||||
-rw-r--r-- | examples/format.html | 311 | ||||
-rw-r--r-- | examples/format.js | 57 | ||||
-rw-r--r-- | examples/format.js.map | 1 | ||||
-rw-r--r-- | examples/hidden.html | 13 | ||||
-rw-r--r-- | examples/hidden.js | 12 | ||||
-rw-r--r-- | examples/hidden.js.map | 2 | ||||
-rw-r--r-- | examples/pick-time.html | 13 | ||||
-rw-r--r-- | examples/pick-time.js | 12 | ||||
-rw-r--r-- | examples/pick-time.js.map | 2 | ||||
-rw-r--r-- | examples/value-and-defaultValue.html | 13 | ||||
-rw-r--r-- | examples/value-and-defaultValue.js | 12 | ||||
-rw-r--r-- | examples/value-and-defaultValue.js.map | 2 |
18 files changed, 6619 insertions, 5608 deletions
diff --git a/examples/common.css.map b/examples/common.css.map index 055bc6d..d66e16f 100644 --- a/examples/common.css.map +++ b/examples/common.css.map | |||
@@ -1 +1 @@ | |||
{"version":3,"sources":["webpack:///./assets/index.less","webpack:///index.less","webpack:///./assets/index/Picker.less","webpack:///./assets/index/Panel.less","webpack:///./assets/index/Header.less","webpack:///./assets/index/Select.less"],"names":[],"mappings":"AAEA;EACE;EACA;CCDD;ADDD;EAII;CCAH;ACLC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAAA;CDOH;AEtBD;EACE;EACA;EACA;EACA;CFwBD;AE5BD;EAOI;CFwBH;AErBC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CFuBH;AG5CC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;CH8CH;AG5CG;EACE;EACA;EACA;EACA;CH8CL;AG3CG;EACE;CH6CL;AGzCC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CH2CH;AGxCC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAAA;CH0CH;AGvCC;EACE;CHyCH;AIvFD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CJyFD;AIvFC;EACE;CJyFH;AItFC;EACE;EACA;CJwFH;AIrFC;EACE;CJuFH;AI5GD;EAyBI;EACA;EACA;EACA;EACA;EACA;CJsFH;AIpHD;EAkCI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;KAAA;MAAA;UAAA;CJqFH;AInFG;EACE;CJqFL;AIjFC;EACE;EACA;CJmFH;AIhFC;EACE;CJkFH;AIjFG;EACE;EACA;CJmFL","file":"common.css","sourcesContent":["@prefixClass: rc-time-picker;\n\n.@{prefixClass} {\n display: inline-block;\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n}\n\n@import \"./index/Picker\";\n@import \"./index/Panel\";\n@import \"./index/Header\";\n@import \"./index/Select\";\n\n\n\n/** WEBPACK FOOTER **\n ** ./assets/index.less\n **/",".rc-time-picker {\n display: inline-block;\n box-sizing: border-box;\n}\n.rc-time-picker * {\n box-sizing: border-box;\n}\n.rc-time-picker-input {\n width: 100%;\n position: relative;\n display: inline-block;\n padding: 4px 7px;\n height: 28px;\n cursor: text;\n font-size: 12px;\n line-height: 1.5;\n color: #666;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 6px;\n transition: border 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.rc-time-picker-panel {\n z-index: 1070;\n width: 170px;\n position: absolute;\n box-sizing: border-box;\n}\n.rc-time-picker-panel * {\n box-sizing: border-box;\n}\n.rc-time-picker-panel-inner {\n display: inline-block;\n position: relative;\n outline: none;\n list-style: none;\n font-size: 12px;\n text-align: left;\n background-color: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 5px #ccc;\n background-clip: padding-box;\n border: 1px solid #ccc;\n line-height: 1.5;\n}\n.rc-time-picker-panel-input {\n margin: 0;\n padding: 0;\n width: 100%;\n cursor: auto;\n line-height: 1.5;\n outline: 0;\n border: 1px solid transparent;\n}\n.rc-time-picker-panel-input-wrap {\n box-sizing: border-box;\n position: relative;\n padding: 6px;\n border-bottom: 1px solid #e9e9e9;\n}\n.rc-time-picker-panel-input-invalid {\n border-color: red;\n}\n.rc-time-picker-panel-clear-btn {\n position: absolute;\n right: 6px;\n cursor: pointer;\n overflow: hidden;\n width: 20px;\n height: 20px;\n text-align: center;\n line-height: 20px;\n top: 6px;\n margin: 0;\n}\n.rc-time-picker-panel-clear-btn:after {\n content: \"x\";\n font-size: 12px;\n color: #aaa;\n display: inline-block;\n line-height: 1;\n width: 20px;\n transition: color 0.3s ease;\n}\n.rc-time-picker-panel-clear-btn:hover:after {\n color: #666;\n}\n.rc-time-picker-panel-select {\n float: left;\n font-size: 12px;\n border: 1px solid #e9e9e9;\n border-width: 0 1px;\n margin-left: -1px;\n box-sizing: border-box;\n width: 56px;\n overflow: hidden;\n position: relative;\n}\n.rc-time-picker-panel-select:hover {\n overflow-y: auto;\n}\n.rc-time-picker-panel-select:first-child {\n border-left: 0;\n margin-left: 0;\n}\n.rc-time-picker-panel-select:last-child {\n border-right: 0;\n}\n.rc-time-picker-panel-select ul {\n list-style: none;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n width: 100%;\n max-height: 144px;\n}\n.rc-time-picker-panel-select li {\n list-style: none;\n box-sizing: content-box;\n margin: 0;\n padding: 0 0 0 16px;\n width: 100%;\n height: 24px;\n line-height: 24px;\n text-align: left;\n cursor: pointer;\n user-select: none;\n}\n.rc-time-picker-panel-select li:hover {\n background: #edfaff;\n}\nli.rc-time-picker-panel-select-option-selected {\n background: #edfaff;\n color: #2db7f5;\n}\nli.rc-time-picker-panel-select-option-disabled {\n color: #bfbfbf;\n}\nli.rc-time-picker-panel-select-option-disabled:hover {\n background: transparent;\n cursor: not-allowed;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** index.less\n **/",".@{prefixClass} {\n &-input {\n width: 100%;\n position: relative;\n display: inline-block;\n padding: 4px 7px;\n height: 28px;\n cursor: text;\n font-size: 12px;\n line-height: 1.5;\n color: #666;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 6px;\n transition: border .2s cubic-bezier(0.645, 0.045, 0.355, 1), background .2s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow .2s cubic-bezier(0.645, 0.045, 0.355, 1);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./assets/index/Picker.less\n **/",".@{prefixClass}-panel {\n z-index: 1070;\n width: 170px;\n position: absolute;\n box-sizing: border-box;\n\n * {\n box-sizing: border-box;\n }\n\n &-inner {\n display: inline-block;\n position: relative;\n outline: none;\n list-style: none;\n font-size: 12px;\n text-align: left;\n background-color: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 5px #ccc;\n background-clip: padding-box;\n border: 1px solid #ccc;\n line-height: 1.5;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./assets/index/Panel.less\n **/",".@{prefixClass}-panel {\n &-input {\n margin: 0;\n padding: 0;\n width: 100%;\n cursor: auto;\n line-height: 1.5;\n outline: 0;\n border: 1px solid transparent;\n\n &-wrap {\n box-sizing: border-box;\n position: relative;\n padding: 6px;\n border-bottom: 1px solid #e9e9e9;\n }\n\n &-invalid {\n border-color: red;\n }\n }\n\n &-clear-btn {\n position: absolute;\n right: 6px;\n cursor: pointer;\n overflow: hidden;\n width: 20px;\n height: 20px;\n text-align: center;\n line-height: 20px;\n top: 6px;\n margin: 0;\n }\n\n &-clear-btn:after {\n content: \"x\";\n font-size: 12px;\n color: #aaa;\n display: inline-block;\n line-height: 1;\n width: 20px;\n transition: color 0.3s ease;\n }\n\n &-clear-btn:hover:after {\n color: #666;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./assets/index/Header.less\n **/",".@{prefixClass}-panel-select {\n float: left;\n font-size: 12px;\n border: 1px solid #e9e9e9;\n border-width: 0 1px;\n margin-left: -1px;\n box-sizing: border-box;\n width: 56px;\n overflow: hidden;\n position: relative; // Fix chrome weird render bug\n\n &:hover {\n overflow-y: auto;\n }\n\n &:first-child {\n border-left: 0;\n margin-left: 0;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n ul {\n list-style: none;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n width: 100%;\n max-height: 144px;\n }\n\n li {\n list-style: none;\n box-sizing: content-box;\n margin: 0;\n padding: 0 0 0 16px;\n width: 100%;\n height: 24px;\n line-height: 24px;\n text-align: left;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n background: #edfaff;\n }\n }\n\n li&-option-selected {\n background: #edfaff;\n color: #2db7f5;\n }\n\n li&-option-disabled {\n color: #bfbfbf;\n &:hover {\n background: transparent;\n cursor: not-allowed;\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./assets/index/Select.less\n **/"],"sourceRoot":""} \ No newline at end of file | {"version":3,"sources":["webpack:///./assets/index.less","webpack:///index.less","webpack:///./assets/index/Picker.less","webpack:///./assets/index/Panel.less","webpack:///./assets/index/Header.less","webpack:///./assets/index/Select.less"],"names":[],"mappings":"AAEA;EACE;EACA;CCDD;ADDD;EAII;CCAH;ACLC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAAA;CDOH;AEtBD;EACE;EACA;EACA;EACA;CFwBD;AE5BD;EAOI;CFwBH;AErBC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CFuBH;AG5CC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;CH8CH;AG5CG;EACE;EACA;EACA;EACA;CH8CL;AG3CG;EACE;CH6CL;AGzCC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CH2CH;AGxCC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAAA;CH0CH;AGvCC;EACE;CHyCH;AIvFD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CJyFD;AIvFC;EACE;CJyFH;AItFC;EACE;EACA;CJwFH;AIrFC;EACE;CJuFH;AI5GD;EAyBI;EACA;EACA;EACA;EACA;EACA;CJsFH;AIpHD;EAkCI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;KAAA;MAAA;UAAA;CJqFH;AInFG;EACE;CJqFL;AIjFC;EACE;EACA;CJmFH;AIhFC;EACE;CJkFH;AIjFG;EACE;EACA;CJmFL","file":"common.css","sourcesContent":["@prefixClass: rc-time-picker;\n\n.@{prefixClass} {\n display: inline-block;\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n}\n\n@import \"./index/Picker\";\n@import \"./index/Panel\";\n@import \"./index/Header\";\n@import \"./index/Select\";\n\n\n\n// WEBPACK FOOTER //\n// ./assets/index.less",".rc-time-picker {\n display: inline-block;\n box-sizing: border-box;\n}\n.rc-time-picker * {\n box-sizing: border-box;\n}\n.rc-time-picker-input {\n width: 100%;\n position: relative;\n display: inline-block;\n padding: 4px 7px;\n height: 28px;\n cursor: text;\n font-size: 12px;\n line-height: 1.5;\n color: #666;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 6px;\n transition: border 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.rc-time-picker-panel {\n z-index: 1070;\n width: 170px;\n position: absolute;\n box-sizing: border-box;\n}\n.rc-time-picker-panel * {\n box-sizing: border-box;\n}\n.rc-time-picker-panel-inner {\n display: inline-block;\n position: relative;\n outline: none;\n list-style: none;\n font-size: 12px;\n text-align: left;\n background-color: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 5px #ccc;\n background-clip: padding-box;\n border: 1px solid #ccc;\n line-height: 1.5;\n}\n.rc-time-picker-panel-input {\n margin: 0;\n padding: 0;\n width: 100%;\n cursor: auto;\n line-height: 1.5;\n outline: 0;\n border: 1px solid transparent;\n}\n.rc-time-picker-panel-input-wrap {\n box-sizing: border-box;\n position: relative;\n padding: 6px;\n border-bottom: 1px solid #e9e9e9;\n}\n.rc-time-picker-panel-input-invalid {\n border-color: red;\n}\n.rc-time-picker-panel-clear-btn {\n position: absolute;\n right: 6px;\n cursor: pointer;\n overflow: hidden;\n width: 20px;\n height: 20px;\n text-align: center;\n line-height: 20px;\n top: 6px;\n margin: 0;\n}\n.rc-time-picker-panel-clear-btn:after {\n content: \"x\";\n font-size: 12px;\n color: #aaa;\n display: inline-block;\n line-height: 1;\n width: 20px;\n transition: color 0.3s ease;\n}\n.rc-time-picker-panel-clear-btn:hover:after {\n color: #666;\n}\n.rc-time-picker-panel-select {\n float: left;\n font-size: 12px;\n border: 1px solid #e9e9e9;\n border-width: 0 1px;\n margin-left: -1px;\n box-sizing: border-box;\n width: 56px;\n overflow: hidden;\n position: relative;\n}\n.rc-time-picker-panel-select:hover {\n overflow-y: auto;\n}\n.rc-time-picker-panel-select:first-child {\n border-left: 0;\n margin-left: 0;\n}\n.rc-time-picker-panel-select:last-child {\n border-right: 0;\n}\n.rc-time-picker-panel-select ul {\n list-style: none;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n width: 100%;\n max-height: 144px;\n}\n.rc-time-picker-panel-select li {\n list-style: none;\n box-sizing: content-box;\n margin: 0;\n padding: 0 0 0 16px;\n width: 100%;\n height: 24px;\n line-height: 24px;\n text-align: left;\n cursor: pointer;\n user-select: none;\n}\n.rc-time-picker-panel-select li:hover {\n background: #edfaff;\n}\nli.rc-time-picker-panel-select-option-selected {\n background: #edfaff;\n color: #2db7f5;\n}\nli.rc-time-picker-panel-select-option-disabled {\n color: #bfbfbf;\n}\nli.rc-time-picker-panel-select-option-disabled:hover {\n background: transparent;\n cursor: not-allowed;\n}\n\n\n\n// WEBPACK FOOTER //\n// index.less",".@{prefixClass} {\n &-input {\n width: 100%;\n position: relative;\n display: inline-block;\n padding: 4px 7px;\n height: 28px;\n cursor: text;\n font-size: 12px;\n line-height: 1.5;\n color: #666;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 6px;\n transition: border .2s cubic-bezier(0.645, 0.045, 0.355, 1), background .2s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow .2s cubic-bezier(0.645, 0.045, 0.355, 1);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./assets/index/Picker.less",".@{prefixClass}-panel {\n z-index: 1070;\n width: 170px;\n position: absolute;\n box-sizing: border-box;\n\n * {\n box-sizing: border-box;\n }\n\n &-inner {\n display: inline-block;\n position: relative;\n outline: none;\n list-style: none;\n font-size: 12px;\n text-align: left;\n background-color: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 5px #ccc;\n background-clip: padding-box;\n border: 1px solid #ccc;\n line-height: 1.5;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./assets/index/Panel.less",".@{prefixClass}-panel {\n &-input {\n margin: 0;\n padding: 0;\n width: 100%;\n cursor: auto;\n line-height: 1.5;\n outline: 0;\n border: 1px solid transparent;\n\n &-wrap {\n box-sizing: border-box;\n position: relative;\n padding: 6px;\n border-bottom: 1px solid #e9e9e9;\n }\n\n &-invalid {\n border-color: red;\n }\n }\n\n &-clear-btn {\n position: absolute;\n right: 6px;\n cursor: pointer;\n overflow: hidden;\n width: 20px;\n height: 20px;\n text-align: center;\n line-height: 20px;\n top: 6px;\n margin: 0;\n }\n\n &-clear-btn:after {\n content: \"x\";\n font-size: 12px;\n color: #aaa;\n display: inline-block;\n line-height: 1;\n width: 20px;\n transition: color 0.3s ease;\n }\n\n &-clear-btn:hover:after {\n color: #666;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./assets/index/Header.less",".@{prefixClass}-panel-select {\n float: left;\n font-size: 12px;\n border: 1px solid #e9e9e9;\n border-width: 0 1px;\n margin-left: -1px;\n box-sizing: border-box;\n width: 56px;\n overflow: hidden;\n position: relative; // Fix chrome weird render bug\n\n &:hover {\n overflow-y: auto;\n }\n\n &:first-child {\n border-left: 0;\n margin-left: 0;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n ul {\n list-style: none;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n width: 100%;\n max-height: 144px;\n }\n\n li {\n list-style: none;\n box-sizing: content-box;\n margin: 0;\n padding: 0 0 0 16px;\n width: 100%;\n height: 24px;\n line-height: 24px;\n text-align: left;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n background: #edfaff;\n }\n }\n\n li&-option-selected {\n background: #edfaff;\n color: #2db7f5;\n }\n\n li&-option-disabled {\n color: #bfbfbf;\n &:hover {\n background: transparent;\n cursor: not-allowed;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./assets/index/Select.less"],"sourceRoot":""} \ No newline at end of file | ||
diff --git a/examples/common.js b/examples/common.js index 20a0b7d..3471ad5 100644 --- a/examples/common.js +++ b/examples/common.js | |||
@@ -30,7 +30,7 @@ | |||
30 | /******/ // "0" means "already loaded" | 30 | /******/ // "0" means "already loaded" |
31 | /******/ // Array means "loading", array contains callbacks | 31 | /******/ // Array means "loading", array contains callbacks |
32 | /******/ var installedChunks = { | 32 | /******/ var installedChunks = { |
33 | /******/ 4:0 | 33 | /******/ 5:0 |
34 | /******/ }; | 34 | /******/ }; |
35 | /******/ | 35 | /******/ |
36 | /******/ // The require function | 36 | /******/ // The require function |
@@ -76,7 +76,7 @@ | |||
76 | /******/ script.charset = 'utf-8'; | 76 | /******/ script.charset = 'utf-8'; |
77 | /******/ script.async = true; | 77 | /******/ script.async = true; |
78 | /******/ | 78 | /******/ |
79 | /******/ script.src = __webpack_require__.p + "" + chunkId + "." + ({"0":"disabled","1":"hidden","2":"pick-time","3":"value-and-defaultValue"}[chunkId]||chunkId) + ".js"; | 79 | /******/ script.src = __webpack_require__.p + "" + chunkId + "." + ({"0":"disabled","1":"format","2":"hidden","3":"pick-time","4":"value-and-defaultValue"}[chunkId]||chunkId) + ".js"; |
80 | /******/ head.appendChild(script); | 80 | /******/ head.appendChild(script); |
81 | /******/ } | 81 | /******/ } |
82 | /******/ }; | 82 | /******/ }; |
@@ -133,10 +133,10 @@ | |||
133 | var ReactClass = __webpack_require__(23); | 133 | var ReactClass = __webpack_require__(23); |
134 | var ReactDOMFactories = __webpack_require__(28); | 134 | var ReactDOMFactories = __webpack_require__(28); |
135 | var ReactElement = __webpack_require__(11); | 135 | var ReactElement = __webpack_require__(11); |
136 | var ReactPropTypes = __webpack_require__(34); | 136 | var ReactPropTypes = __webpack_require__(33); |
137 | var ReactVersion = __webpack_require__(35); | 137 | var ReactVersion = __webpack_require__(34); |
138 | 138 | ||
139 | var onlyChild = __webpack_require__(36); | 139 | var onlyChild = __webpack_require__(35); |
140 | var warning = __webpack_require__(13); | 140 | var warning = __webpack_require__(13); |
141 | 141 | ||
142 | var createElement = ReactElement.createElement; | 142 | var createElement = ReactElement.createElement; |
@@ -144,7 +144,7 @@ | |||
144 | var cloneElement = ReactElement.cloneElement; | 144 | var cloneElement = ReactElement.cloneElement; |
145 | 145 | ||
146 | if (process.env.NODE_ENV !== 'production') { | 146 | if (process.env.NODE_ENV !== 'production') { |
147 | var ReactElementValidator = __webpack_require__(30); | 147 | var ReactElementValidator = __webpack_require__(29); |
148 | createElement = ReactElementValidator.createElement; | 148 | createElement = ReactElementValidator.createElement; |
149 | createFactory = ReactElementValidator.createFactory; | 149 | createFactory = ReactElementValidator.createFactory; |
150 | cloneElement = ReactElementValidator.cloneElement; | 150 | cloneElement = ReactElementValidator.cloneElement; |
@@ -218,35 +218,83 @@ | |||
218 | var cachedSetTimeout; | 218 | var cachedSetTimeout; |
219 | var cachedClearTimeout; | 219 | var cachedClearTimeout; |
220 | 220 | ||
221 | function defaultSetTimout() { | ||
222 | throw new Error('setTimeout has not been defined'); | ||
223 | } | ||
224 | function defaultClearTimeout () { | ||
225 | throw new Error('clearTimeout has not been defined'); | ||
226 | } | ||
221 | (function () { | 227 | (function () { |
222 | try { | 228 | try { |
223 | cachedSetTimeout = setTimeout; | 229 | if (typeof setTimeout === 'function') { |
224 | } catch (e) { | 230 | cachedSetTimeout = setTimeout; |
225 | cachedSetTimeout = function () { | 231 | } else { |
226 | throw new Error('setTimeout is not defined'); | 232 | cachedSetTimeout = defaultSetTimout; |
227 | } | 233 | } |
234 | } catch (e) { | ||
235 | cachedSetTimeout = defaultSetTimout; | ||
228 | } | 236 | } |
229 | try { | 237 | try { |
230 | cachedClearTimeout = clearTimeout; | 238 | if (typeof clearTimeout === 'function') { |
231 | } catch (e) { | 239 | cachedClearTimeout = clearTimeout; |
232 | cachedClearTimeout = function () { | 240 | } else { |
233 | throw new Error('clearTimeout is not defined'); | 241 | cachedClearTimeout = defaultClearTimeout; |
234 | } | 242 | } |
243 | } catch (e) { | ||
244 | cachedClearTimeout = defaultClearTimeout; | ||
235 | } | 245 | } |
236 | } ()) | 246 | } ()) |
237 | function runTimeout(fun) { | 247 | function runTimeout(fun) { |
238 | if (cachedSetTimeout === setTimeout) { | 248 | if (cachedSetTimeout === setTimeout) { |
249 | //normal enviroments in sane situations | ||
239 | return setTimeout(fun, 0); | 250 | return setTimeout(fun, 0); |
240 | } else { | ||
241 | return cachedSetTimeout.call(null, fun, 0); | ||
242 | } | 251 | } |
252 | // if setTimeout wasn't available but was latter defined | ||
253 | if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { | ||
254 | cachedSetTimeout = setTimeout; | ||
255 | return setTimeout(fun, 0); | ||
256 | } | ||
257 | try { | ||
258 | // when when somebody has screwed with setTimeout but no I.E. maddness | ||
259 | return cachedSetTimeout(fun, 0); | ||
260 | } catch(e){ | ||
261 | try { | ||
262 | // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally | ||
263 | return cachedSetTimeout.call(null, fun, 0); | ||
264 | } catch(e){ | ||
265 | // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error | ||
266 | return cachedSetTimeout.call(this, fun, 0); | ||
267 | } | ||
268 | } | ||
269 | |||
270 | |||
243 | } | 271 | } |
244 | function runClearTimeout(marker) { | 272 | function runClearTimeout(marker) { |
245 | if (cachedClearTimeout === clearTimeout) { | 273 | if (cachedClearTimeout === clearTimeout) { |
246 | clearTimeout(marker); | 274 | //normal enviroments in sane situations |
247 | } else { | 275 | return clearTimeout(marker); |
248 | cachedClearTimeout.call(null, marker); | ||
249 | } | 276 | } |
277 | // if clearTimeout wasn't available but was latter defined | ||
278 | if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { | ||
279 | cachedClearTimeout = clearTimeout; | ||
280 | return clearTimeout(marker); | ||
281 | } | ||
282 | try { | ||
283 | // when when somebody has screwed with setTimeout but no I.E. maddness | ||
284 | return cachedClearTimeout(marker); | ||
285 | } catch (e){ | ||
286 | try { | ||
287 | // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally | ||
288 | return cachedClearTimeout.call(null, marker); | ||
289 | } catch (e){ | ||
290 | // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. | ||
291 | // Some versions of I.E. have different rules for clearTimeout vs setTimeout | ||
292 | return cachedClearTimeout.call(this, marker); | ||
293 | } | ||
294 | } | ||
295 | |||
296 | |||
297 | |||
250 | } | 298 | } |
251 | var queue = []; | 299 | var queue = []; |
252 | var draining = false; | 300 | var draining = false; |
@@ -914,6 +962,34 @@ | |||
914 | return config.key !== undefined; | 962 | return config.key !== undefined; |
915 | } | 963 | } |
916 | 964 | ||
965 | function defineKeyPropWarningGetter(props, displayName) { | ||
966 | var warnAboutAccessingKey = function () { | ||
967 | if (!specialPropKeyWarningShown) { | ||
968 | specialPropKeyWarningShown = true; | ||
969 | process.env.NODE_ENV !== '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; | ||
970 | } | ||
971 | }; | ||
972 | warnAboutAccessingKey.isReactWarning = true; | ||
973 | Object.defineProperty(props, 'key', { | ||
974 | get: warnAboutAccessingKey, | ||
975 | configurable: true | ||
976 | }); | ||
977 | } | ||
978 | |||
979 | function defineRefPropWarningGetter(props, displayName) { | ||
980 | var warnAboutAccessingRef = function () { | ||
981 | if (!specialPropRefWarningShown) { | ||
982 | specialPropRefWarningShown = true; | ||
983 | process.env.NODE_ENV !== '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; | ||
984 | } | ||
985 | }; | ||
986 | warnAboutAccessingRef.isReactWarning = true; | ||
987 | Object.defineProperty(props, 'ref', { | ||
988 | get: warnAboutAccessingRef, | ||
989 | configurable: true | ||
990 | }); | ||
991 | } | ||
992 | |||
917 | /** | 993 | /** |
918 | * Factory method to create a new React element. This no longer adheres to | 994 | * Factory method to create a new React element. This no longer adheres to |
919 | * the class pattern, so do not use new to call it. Also, no instanceof check | 995 | * the class pattern, so do not use new to call it. Also, no instanceof check |
@@ -1020,14 +1096,6 @@ | |||
1020 | var source = null; | 1096 | var source = null; |
1021 | 1097 | ||
1022 | if (config != null) { | 1098 | if (config != null) { |
1023 | if (process.env.NODE_ENV !== 'production') { | ||
1024 | process.env.NODE_ENV !== 'production' ? warning( | ||
1025 | /* eslint-disable no-proto */ | ||
1026 | config.__proto__ == null || config.__proto__ === Object.prototype, | ||
1027 | /* eslint-enable no-proto */ | ||
1028 | 'React.createElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0; | ||
1029 | } | ||
1030 | |||
1031 | if (hasValidRef(config)) { | 1099 | if (hasValidRef(config)) { |
1032 | ref = config.ref; | 1100 | ref = config.ref; |
1033 | } | 1101 | } |
@@ -1068,39 +1136,15 @@ | |||
1068 | } | 1136 | } |
1069 | } | 1137 | } |
1070 | if (process.env.NODE_ENV !== 'production') { | 1138 | if (process.env.NODE_ENV !== 'production') { |
1071 | var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; | 1139 | if (key || ref) { |
1072 | 1140 | if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { | |
1073 | // Create dummy `key` and `ref` property to `props` to warn users against its use | 1141 | var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; |
1074 | var warnAboutAccessingKey = function () { | 1142 | if (key) { |
1075 | if (!specialPropKeyWarningShown) { | 1143 | defineKeyPropWarningGetter(props, displayName); |
1076 | specialPropKeyWarningShown = true; | 1144 | } |
1077 | process.env.NODE_ENV !== '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; | 1145 | if (ref) { |
1078 | } | 1146 | defineRefPropWarningGetter(props, displayName); |
1079 | return undefined; | 1147 | } |
1080 | }; | ||
1081 | warnAboutAccessingKey.isReactWarning = true; | ||
1082 | |||
1083 | var warnAboutAccessingRef = function () { | ||
1084 | if (!specialPropRefWarningShown) { | ||
1085 | specialPropRefWarningShown = true; | ||
1086 | process.env.NODE_ENV !== '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; | ||
1087 | } | ||
1088 | return undefined; | ||
1089 | }; | ||
1090 | warnAboutAccessingRef.isReactWarning = true; | ||
1091 | |||
1092 | if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { | ||
1093 | if (!props.hasOwnProperty('key')) { | ||
1094 | Object.defineProperty(props, 'key', { | ||
1095 | get: warnAboutAccessingKey, | ||
1096 | configurable: true | ||
1097 | }); | ||
1098 | } | ||
1099 | if (!props.hasOwnProperty('ref')) { | ||
1100 | Object.defineProperty(props, 'ref', { | ||
1101 | get: warnAboutAccessingRef, | ||
1102 | configurable: true | ||
1103 | }); | ||
1104 | } | 1148 | } |
1105 | } | 1149 | } |
1106 | } | 1150 | } |
@@ -1152,14 +1196,6 @@ | |||
1152 | var owner = element._owner; | 1196 | var owner = element._owner; |
1153 | 1197 | ||
1154 | if (config != null) { | 1198 | if (config != null) { |
1155 | if (process.env.NODE_ENV !== 'production') { | ||
1156 | process.env.NODE_ENV !== 'production' ? warning( | ||
1157 | /* eslint-disable no-proto */ | ||
1158 | config.__proto__ == null || config.__proto__ === Object.prototype, | ||
1159 | /* eslint-enable no-proto */ | ||
1160 | 'React.cloneElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0; | ||
1161 | } | ||
1162 | |||
1163 | if (hasValidRef(config)) { | 1199 | if (hasValidRef(config)) { |
1164 | // Silently steal the ref from the parent. | 1200 | // Silently steal the ref from the parent. |
1165 | ref = config.ref; | 1201 | ref = config.ref; |
@@ -1282,20 +1318,12 @@ | |||
1282 | var warning = emptyFunction; | 1318 | var warning = emptyFunction; |
1283 | 1319 | ||
1284 | if (process.env.NODE_ENV !== 'production') { | 1320 | if (process.env.NODE_ENV !== 'production') { |
1285 | warning = function warning(condition, format) { | 1321 | (function () { |
1286 | for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { | 1322 | var printWarning = function printWarning(format) { |
1287 | args[_key - 2] = arguments[_key]; | 1323 | for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { |
1288 | } | 1324 | args[_key - 1] = arguments[_key]; |
1289 | 1325 | } | |
1290 | if (format === undefined) { | ||
1291 | throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); | ||
1292 | } | ||
1293 | |||
1294 | if (format.indexOf('Failed Composite propType: ') === 0) { | ||
1295 | return; // Ignore CompositeComponent proptype check. | ||
1296 | } | ||
1297 | 1326 | ||
1298 | if (!condition) { | ||
1299 | var argIndex = 0; | 1327 | var argIndex = 0; |
1300 | var message = 'Warning: ' + format.replace(/%s/g, function () { | 1328 | var message = 'Warning: ' + format.replace(/%s/g, function () { |
1301 | return args[argIndex++]; | 1329 | return args[argIndex++]; |
@@ -1309,8 +1337,26 @@ | |||
1309 | // to find the callsite that caused this warning to fire. | 1337 | // to find the callsite that caused this warning to fire. |
1310 | throw new Error(message); | 1338 | throw new Error(message); |
1311 | } catch (x) {} | 1339 | } catch (x) {} |
1312 | } | 1340 | }; |
1313 | }; | 1341 | |
1342 | warning = function warning(condition, format) { | ||
1343 | if (format === undefined) { | ||
1344 | throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); | ||
1345 | } | ||
1346 | |||
1347 | if (format.indexOf('Failed Composite propType: ') === 0) { | ||
1348 | return; // Ignore CompositeComponent proptype check. | ||
1349 | } | ||
1350 | |||
1351 | if (!condition) { | ||
1352 | for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { | ||
1353 | args[_key2 - 2] = arguments[_key2]; | ||
1354 | } | ||
1355 | |||
1356 | printWarning.apply(undefined, [format].concat(args)); | ||
1357 | } | ||
1358 | }; | ||
1359 | })(); | ||
1314 | } | 1360 | } |
1315 | 1361 | ||
1316 | module.exports = warning; | 1362 | module.exports = warning; |
@@ -2876,20 +2922,15 @@ | |||
2876 | 2922 | ||
2877 | var ReactElement = __webpack_require__(11); | 2923 | var ReactElement = __webpack_require__(11); |
2878 | 2924 | ||
2879 | var mapObject = __webpack_require__(29); | ||
2880 | |||
2881 | /** | 2925 | /** |
2882 | * Create a factory that creates HTML tag elements. | 2926 | * Create a factory that creates HTML tag elements. |
2883 | * | 2927 | * |
2884 | * @param {string} tag Tag name (e.g. `div`). | ||
2885 | * @private | 2928 | * @private |
2886 | */ | 2929 | */ |
2887 | function createDOMFactory(tag) { | 2930 | var createDOMFactory = ReactElement.createFactory; |
2888 | if (process.env.NODE_ENV !== 'production') { | 2931 | if (process.env.NODE_ENV !== 'production') { |
2889 | var ReactElementValidator = __webpack_require__(30); | 2932 | var ReactElementValidator = __webpack_require__(29); |
2890 | return ReactElementValidator.createFactory(tag); | 2933 | createDOMFactory = ReactElementValidator.createFactory; |
2891 | } | ||
2892 | return ReactElement.createFactory(tag); | ||
2893 | } | 2934 | } |
2894 | 2935 | ||
2895 | /** | 2936 | /** |
@@ -2898,204 +2939,148 @@ | |||
2898 | * | 2939 | * |
2899 | * @public | 2940 | * @public |
2900 | */ | 2941 | */ |
2901 | var ReactDOMFactories = mapObject({ | 2942 | var ReactDOMFactories = { |
2902 | a: 'a', | 2943 | a: createDOMFactory('a'), |
2903 | abbr: 'abbr', | 2944 | abbr: createDOMFactory('abbr'), |
2904 | address: 'address', | 2945 | address: createDOMFactory('address'), |
2905 | area: 'area', | 2946 | area: createDOMFactory('area'), |
2906 | article: 'article', | 2947 | article: createDOMFactory('article'), |
2907 | aside: 'aside', | 2948 | aside: createDOMFactory('aside'), |
2908 | audio: 'audio', | 2949 | audio: createDOMFactory('audio'), |
2909 | b: 'b', | 2950 | b: createDOMFactory('b'), |
2910 | base: 'base', | 2951 | base: createDOMFactory('base'), |
2911 | bdi: 'bdi', | 2952 | bdi: createDOMFactory('bdi'), |
2912 | bdo: 'bdo', | 2953 | bdo: createDOMFactory('bdo'), |
2913 | big: 'big', | 2954 | big: createDOMFactory('big'), |
2914 | blockquote: 'blockquote', | 2955 | blockquote: createDOMFactory('blockquote'), |
2915 | body: 'body', | 2956 | body: createDOMFactory('body'), |
2916 | br: 'br', | 2957 | br: createDOMFactory('br'), |
2917 | button: 'button', | 2958 | button: createDOMFactory('button'), |
2918 | canvas: 'canvas', | 2959 | canvas: createDOMFactory('canvas'), |
2919 | caption: 'caption', | 2960 | caption: createDOMFactory('caption'), |
2920 | cite: 'cite', | 2961 | cite: createDOMFactory('cite'), |
2921 | code: 'code', | 2962 | code: createDOMFactory('code'), |
2922 | col: 'col', | 2963 | col: createDOMFactory('col'), |
2923 | colgroup: 'colgroup', | 2964 | colgroup: createDOMFactory('colgroup'), |
2924 | data: 'data', | 2965 | data: createDOMFactory('data'), |
2925 | datalist: 'datalist', | 2966 | datalist: createDOMFactory('datalist'), |
2926 | dd: 'dd', | 2967 | dd: createDOMFactory('dd'), |
2927 | del: 'del', | 2968 | del: createDOMFactory('del'), |
2928 | details: 'details', | 2969 | details: createDOMFactory('details'), |
2929 | dfn: 'dfn', | 2970 | dfn: createDOMFactory('dfn'), |
2930 | dialog: 'dialog', | 2971 | dialog: createDOMFactory('dialog'), |
2931 | div: 'div', | 2972 | div: createDOMFactory('div'), |
2932 | dl: 'dl', | 2973 | dl: createDOMFactory('dl'), |
2933 | dt: 'dt', | 2974 | dt: createDOMFactory('dt'), |
2934 | em: 'em', | 2975 | em: createDOMFactory('em'), |
2935 | embed: 'embed', | 2976 | embed: createDOMFactory('embed'), |
2936 | fieldset: 'fieldset', | 2977 | fieldset: createDOMFactory('fieldset'), |
2937 | figcaption: 'figcaption', | 2978 | figcaption: createDOMFactory('figcaption'), |
2938 | figure: 'figure', | 2979 | figure: createDOMFactory('figure'), |
2939 | footer: 'footer', | 2980 | footer: createDOMFactory('footer'), |
2940 | form: 'form', | 2981 | form: createDOMFactory('form'), |
2941 | h1: 'h1', | 2982 | h1: createDOMFactory('h1'), |
2942 | h2: 'h2', | 2983 | h2: createDOMFactory('h2'), |
2943 | h3: 'h3', | 2984 | h3: createDOMFactory('h3'), |
2944 | h4: 'h4', | 2985 | h4: createDOMFactory('h4'), |
2945 | h5: 'h5', | 2986 | h5: createDOMFactory('h5'), |
2946 | h6: 'h6', | 2987 | h6: createDOMFactory('h6'), |
2947 | head: 'head', | 2988 | head: createDOMFactory('head'), |
2948 | header: 'header', | 2989 | header: createDOMFactory('header'), |
2949 | hgroup: 'hgroup', | 2990 | hgroup: createDOMFactory('hgroup'), |
2950 | hr: 'hr', | 2991 | hr: createDOMFactory('hr'), |
2951 | html: 'html', | 2992 | html: createDOMFactory('html'), |
2952 | i: 'i', | 2993 | i: createDOMFactory('i'), |
2953 | iframe: 'iframe', | 2994 | iframe: createDOMFactory('iframe'), |
2954 | img: 'img', | 2995 | img: createDOMFactory('img'), |
2955 | input: 'input', | 2996 | input: createDOMFactory('input'), |
2956 | ins: 'ins', | 2997 | ins: createDOMFactory('ins'), |
2957 | kbd: 'kbd', | 2998 | kbd: createDOMFactory('kbd'), |
2958 | keygen: 'keygen', | 2999 | keygen: createDOMFactory('keygen'), |
2959 | label: 'label', | 3000 | label: createDOMFactory('label'), |
2960 | legend: 'legend', | 3001 | legend: createDOMFactory('legend'), |
2961 | li: 'li', | 3002 | li: createDOMFactory('li'), |
2962 | link: 'link', | 3003 | link: createDOMFactory('link'), |
2963 | main: 'main', | 3004 | main: createDOMFactory('main'), |
2964 | map: 'map', | 3005 | map: createDOMFactory('map'), |
2965 | mark: 'mark', | 3006 | mark: createDOMFactory('mark'), |
2966 | menu: 'menu', | 3007 | menu: createDOMFactory('menu'), |
2967 | menuitem: 'menuitem', | 3008 | menuitem: createDOMFactory('menuitem'), |
2968 | meta: 'meta', | 3009 | meta: createDOMFactory('meta'), |
2969 | meter: 'meter', | 3010 | meter: createDOMFactory('meter'), |
2970 | nav: 'nav', | 3011 | nav: createDOMFactory('nav'), |
2971 | noscript: 'noscript', | 3012 | noscript: createDOMFactory('noscript'), |
2972 | object: 'object', | 3013 | object: createDOMFactory('object'), |
2973 | ol: 'ol', | 3014 | ol: createDOMFactory('ol'), |
2974 | optgroup: 'optgroup', | 3015 | optgroup: createDOMFactory('optgroup'), |
2975 | option: 'option', | 3016 | option: createDOMFactory('option'), |
2976 | output: 'output', | 3017 | output: createDOMFactory('output'), |
2977 | p: 'p', | 3018 | p: createDOMFactory('p'), |
2978 | param: 'param', | 3019 | param: createDOMFactory('param'), |
2979 | picture: 'picture', | 3020 | picture: createDOMFactory('picture'), |
2980 | pre: 'pre', | 3021 | pre: createDOMFactory('pre'), |
2981 | progress: 'progress', | 3022 | progress: createDOMFactory('progress'), |
2982 | q: 'q', | 3023 | q: createDOMFactory('q'), |
2983 | rp: 'rp', | 3024 | rp: createDOMFactory('rp'), |
2984 | rt: 'rt', | 3025 | rt: createDOMFactory('rt'), |
2985 | ruby: 'ruby', | 3026 | ruby: createDOMFactory('ruby'), |
2986 | s: 's', | 3027 | s: createDOMFactory('s'), |
2987 | samp: 'samp', | 3028 | samp: createDOMFactory('samp'), |
2988 | script: 'script', | 3029 | script: createDOMFactory('script'), |
2989 | section: 'section', | 3030 | section: createDOMFactory('section'), |
2990 | select: 'select', | 3031 | select: createDOMFactory('select'), |
2991 | small: 'small', | 3032 | small: createDOMFactory('small'), |
2992 | source: 'source', | 3033 | source: createDOMFactory('source'), |
2993 | span: 'span', | 3034 | span: createDOMFactory('span'), |
2994 | strong: 'strong', | 3035 | strong: createDOMFactory('strong'), |
2995 | style: 'style', | 3036 | style: createDOMFactory('style'), |
2996 | sub: 'sub', | 3037 | sub: createDOMFactory('sub'), |
2997 | summary: 'summary', | 3038 | summary: createDOMFactory('summary'), |
2998 | sup: 'sup', | 3039 | sup: createDOMFactory('sup'), |
2999 | table: 'table', | 3040 | table: createDOMFactory('table'), |
3000 | tbody: 'tbody', | 3041 | tbody: createDOMFactory('tbody'), |
3001 | td: 'td', | 3042 | td: createDOMFactory('td'), |
3002 | textarea: 'textarea', | 3043 | textarea: createDOMFactory('textarea'), |
3003 | tfoot: 'tfoot', | 3044 | tfoot: createDOMFactory('tfoot'), |
3004 | th: 'th', | 3045 | th: createDOMFactory('th'), |
3005 | thead: 'thead', | 3046 | thead: createDOMFactory('thead'), |
3006 | time: 'time', | 3047 | time: createDOMFactory('time'), |
3007 | title: 'title', | 3048 | title: createDOMFactory('title'), |
3008 | tr: 'tr', | 3049 | tr: createDOMFactory('tr'), |
3009 | track: 'track', | 3050 | track: createDOMFactory('track'), |
3010 | u: 'u', | 3051 | u: createDOMFactory('u'), |
3011 | ul: 'ul', | 3052 | ul: createDOMFactory('ul'), |
3012 | 'var': 'var', | 3053 | 'var': createDOMFactory('var'), |
3013 | video: 'video', | 3054 | video: createDOMFactory('video'), |
3014 | wbr: 'wbr', | 3055 | wbr: createDOMFactory('wbr'), |
3015 | 3056 | ||
3016 | // SVG | 3057 | // SVG |
3017 | circle: 'circle', | 3058 | circle: createDOMFactory('circle'), |
3018 | clipPath: 'clipPath', | 3059 | clipPath: createDOMFactory('clipPath'), |
3019 | defs: 'defs', | 3060 | defs: createDOMFactory('defs'), |
3020 | ellipse: 'ellipse', | 3061 | ellipse: createDOMFactory('ellipse'), |
3021 | g: 'g', | 3062 | g: createDOMFactory('g'), |
3022 | image: 'image', | 3063 | image: createDOMFactory('image'), |
3023 | line: 'line', | 3064 | line: createDOMFactory('line'), |
3024 | linearGradient: 'linearGradient', | 3065 | linearGradient: createDOMFactory('linearGradient'), |
3025 | mask: 'mask', | 3066 | mask: createDOMFactory('mask'), |
3026 | path: 'path', | 3067 | path: createDOMFactory('path'), |
3027 | pattern: 'pattern', | 3068 | pattern: createDOMFactory('pattern'), |
3028 | polygon: 'polygon', | 3069 | polygon: createDOMFactory('polygon'), |
3029 | polyline: 'polyline', | 3070 | polyline: createDOMFactory('polyline'), |
3030 | radialGradient: 'radialGradient', | 3071 | radialGradient: createDOMFactory('radialGradient'), |
3031 | rect: 'rect', | 3072 | rect: createDOMFactory('rect'), |
3032 | stop: 'stop', | 3073 | stop: createDOMFactory('stop'), |
3033 | svg: 'svg', | 3074 | svg: createDOMFactory('svg'), |
3034 | text: 'text', | 3075 | text: createDOMFactory('text'), |
3035 | tspan: 'tspan' | 3076 | tspan: createDOMFactory('tspan') |
3036 | 3077 | }; | |
3037 | }, createDOMFactory); | ||
3038 | 3078 | ||
3039 | module.exports = ReactDOMFactories; | 3079 | module.exports = ReactDOMFactories; |
3040 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 3080 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
3041 | 3081 | ||
3042 | /***/ }, | 3082 | /***/ }, |
3043 | /* 29 */ | 3083 | /* 29 */ |
3044 | /***/ function(module, exports) { | ||
3045 | |||
3046 | /** | ||
3047 | * Copyright (c) 2013-present, Facebook, Inc. | ||
3048 | * All rights reserved. | ||
3049 | * | ||
3050 | * This source code is licensed under the BSD-style license found in the | ||
3051 | * LICENSE file in the root directory of this source tree. An additional grant | ||
3052 | * of patent rights can be found in the PATENTS file in the same directory. | ||
3053 | * | ||
3054 | */ | ||
3055 | |||
3056 | 'use strict'; | ||
3057 | |||
3058 | var hasOwnProperty = Object.prototype.hasOwnProperty; | ||
3059 | |||
3060 | /** | ||
3061 | * Executes the provided `callback` once for each enumerable own property in the | ||
3062 | * object and constructs a new object from the results. The `callback` is | ||
3063 | * invoked with three arguments: | ||
3064 | * | ||
3065 | * - the property value | ||
3066 | * - the property name | ||
3067 | * - the object being traversed | ||
3068 | * | ||
3069 | * Properties that are added after the call to `mapObject` will not be visited | ||
3070 | * by `callback`. If the values of existing properties are changed, the value | ||
3071 | * passed to `callback` will be the value at the time `mapObject` visits them. | ||
3072 | * Properties that are deleted before being visited are not visited. | ||
3073 | * | ||
3074 | * @grep function objectMap() | ||
3075 | * @grep function objMap() | ||
3076 | * | ||
3077 | * @param {?object} object | ||
3078 | * @param {function} callback | ||
3079 | * @param {*} context | ||
3080 | * @return {?object} | ||
3081 | */ | ||
3082 | function mapObject(object, callback, context) { | ||
3083 | if (!object) { | ||
3084 | return null; | ||
3085 | } | ||
3086 | var result = {}; | ||
3087 | for (var name in object) { | ||
3088 | if (hasOwnProperty.call(object, name)) { | ||
3089 | result[name] = callback.call(context, object[name], name, object); | ||
3090 | } | ||
3091 | } | ||
3092 | return result; | ||
3093 | } | ||
3094 | |||
3095 | module.exports = mapObject; | ||
3096 | |||
3097 | /***/ }, | ||
3098 | /* 30 */ | ||
3099 | /***/ function(module, exports, __webpack_require__) { | 3084 | /***/ function(module, exports, __webpack_require__) { |
3100 | 3085 | ||
3101 | /* WEBPACK VAR INJECTION */(function(process) {/** | 3086 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -3119,11 +3104,11 @@ | |||
3119 | 'use strict'; | 3104 | 'use strict'; |
3120 | 3105 | ||
3121 | var ReactCurrentOwner = __webpack_require__(12); | 3106 | var ReactCurrentOwner = __webpack_require__(12); |
3122 | var ReactComponentTreeDevtool = __webpack_require__(31); | 3107 | var ReactComponentTreeHook = __webpack_require__(30); |
3123 | var ReactElement = __webpack_require__(11); | 3108 | var ReactElement = __webpack_require__(11); |
3124 | var ReactPropTypeLocations = __webpack_require__(24); | 3109 | var ReactPropTypeLocations = __webpack_require__(24); |
3125 | 3110 | ||
3126 | var checkReactTypeSpec = __webpack_require__(32); | 3111 | var checkReactTypeSpec = __webpack_require__(31); |
3127 | 3112 | ||
3128 | var canDefineProperty = __webpack_require__(15); | 3113 | var canDefineProperty = __webpack_require__(15); |
3129 | var getIteratorFn = __webpack_require__(17); | 3114 | var getIteratorFn = __webpack_require__(17); |
@@ -3192,7 +3177,7 @@ | |||
3192 | childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; | 3177 | childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; |
3193 | } | 3178 | } |
3194 | 3179 | ||
3195 | process.env.NODE_ENV !== '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, ReactComponentTreeDevtool.getCurrentStackAddendum(element)) : void 0; | 3180 | process.env.NODE_ENV !== '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; |
3196 | } | 3181 | } |
3197 | 3182 | ||
3198 | /** | 3183 | /** |
@@ -3263,7 +3248,9 @@ | |||
3263 | var validType = typeof type === 'string' || typeof type === 'function'; | 3248 | var validType = typeof type === 'string' || typeof type === 'function'; |
3264 | // We warn in this case but don't throw. We expect the element creation to | 3249 | // We warn in this case but don't throw. We expect the element creation to |
3265 | // succeed and there will likely be errors in render. | 3250 | // succeed and there will likely be errors in render. |
3266 | process.env.NODE_ENV !== 'production' ? warning(validType, '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; | 3251 | if (!validType) { |
3252 | process.env.NODE_ENV !== '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; | ||
3253 | } | ||
3267 | 3254 | ||
3268 | var element = ReactElement.createElement.apply(this, arguments); | 3255 | var element = ReactElement.createElement.apply(this, arguments); |
3269 | 3256 | ||
@@ -3327,7 +3314,7 @@ | |||
3327 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 3314 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
3328 | 3315 | ||
3329 | /***/ }, | 3316 | /***/ }, |
3330 | /* 31 */ | 3317 | /* 30 */ |
3331 | /***/ function(module, exports, __webpack_require__) { | 3318 | /***/ function(module, exports, __webpack_require__) { |
3332 | 3319 | ||
3333 | /* WEBPACK VAR INJECTION */(function(process) {/** | 3320 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -3338,7 +3325,7 @@ | |||
3338 | * LICENSE file in the root directory of this source tree. An additional grant | 3325 | * LICENSE file in the root directory of this source tree. An additional grant |
3339 | * of patent rights can be found in the PATENTS file in the same directory. | 3326 | * of patent rights can be found in the PATENTS file in the same directory. |
3340 | * | 3327 | * |
3341 | * @providesModule ReactComponentTreeDevtool | 3328 | * @providesModule ReactComponentTreeHook |
3342 | */ | 3329 | */ |
3343 | 3330 | ||
3344 | 'use strict'; | 3331 | 'use strict'; |
@@ -3350,32 +3337,138 @@ | |||
3350 | var invariant = __webpack_require__(10); | 3337 | var invariant = __webpack_require__(10); |
3351 | var warning = __webpack_require__(13); | 3338 | var warning = __webpack_require__(13); |
3352 | 3339 | ||
3353 | var tree = {}; | 3340 | function isNative(fn) { |
3354 | var unmountedIDs = {}; | 3341 | // Based on isNative() from Lodash |
3355 | var rootIDs = {}; | 3342 | var funcToString = Function.prototype.toString; |
3343 | var hasOwnProperty = Object.prototype.hasOwnProperty; | ||
3344 | var reIsNative = RegExp('^' + funcToString | ||
3345 | // Take an example native function source for comparison | ||
3346 | .call(hasOwnProperty) | ||
3347 | // Strip regex characters so we can use it for regex | ||
3348 | .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') | ||
3349 | // Remove hasOwnProperty from the template to make it generic | ||
3350 | .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); | ||
3351 | try { | ||
3352 | var source = funcToString.call(fn); | ||
3353 | return reIsNative.test(source); | ||
3354 | } catch (err) { | ||
3355 | return false; | ||
3356 | } | ||
3357 | } | ||
3356 | 3358 | ||
3357 | function updateTree(id, update) { | 3359 | var canUseCollections = |
3358 | if (!tree[id]) { | 3360 | // Array.from |
3359 | tree[id] = { | 3361 | typeof Array.from === 'function' && |
3360 | element: null, | 3362 | // Map |
3361 | parentID: null, | 3363 | typeof Map === 'function' && isNative(Map) && |
3362 | ownerID: null, | 3364 | // Map.prototype.keys |
3363 | text: null, | 3365 | Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) && |
3364 | childIDs: [], | 3366 | // Set |
3365 | displayName: 'Unknown', | 3367 | typeof Set === 'function' && isNative(Set) && |
3366 | isMounted: false, | 3368 | // Set.prototype.keys |
3367 | updateCount: 0 | 3369 | Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys); |
3368 | }; | 3370 | |
3371 | var itemMap; | ||
3372 | var rootIDSet; | ||
3373 | |||
3374 | var itemByKey; | ||
3375 | var rootByKey; | ||
3376 | |||
3377 | if (canUseCollections) { | ||
3378 | itemMap = new Map(); | ||
3379 | rootIDSet = new Set(); | ||
3380 | } else { | ||
3381 | itemByKey = {}; | ||
3382 | rootByKey = {}; | ||
3383 | } | ||
3384 | |||
3385 | var unmountedIDs = []; | ||
3386 | |||
3387 | // Use non-numeric keys to prevent V8 performance issues: | ||
3388 | // https://github.com/facebook/react/pull/7232 | ||
3389 | function getKeyFromID(id) { | ||
3390 | return '.' + id; | ||
3391 | } | ||
3392 | function getIDFromKey(key) { | ||
3393 | return parseInt(key.substr(1), 10); | ||
3394 | } | ||
3395 | |||
3396 | function get(id) { | ||
3397 | if (canUseCollections) { | ||
3398 | return itemMap.get(id); | ||
3399 | } else { | ||
3400 | var key = getKeyFromID(id); | ||
3401 | return itemByKey[key]; | ||
3402 | } | ||
3403 | } | ||
3404 | |||
3405 | function remove(id) { | ||
3406 | if (canUseCollections) { | ||
3407 | itemMap['delete'](id); | ||
3408 | } else { | ||
3409 | var key = getKeyFromID(id); | ||
3410 | delete itemByKey[key]; | ||
3411 | } | ||
3412 | } | ||
3413 | |||
3414 | function create(id, element, parentID) { | ||
3415 | var item = { | ||
3416 | element: element, | ||
3417 | parentID: parentID, | ||
3418 | text: null, | ||
3419 | childIDs: [], | ||
3420 | isMounted: false, | ||
3421 | updateCount: 0 | ||
3422 | }; | ||
3423 | |||
3424 | if (canUseCollections) { | ||
3425 | itemMap.set(id, item); | ||
3426 | } else { | ||
3427 | var key = getKeyFromID(id); | ||
3428 | itemByKey[key] = item; | ||
3429 | } | ||
3430 | } | ||
3431 | |||
3432 | function addRoot(id) { | ||
3433 | if (canUseCollections) { | ||
3434 | rootIDSet.add(id); | ||
3435 | } else { | ||
3436 | var key = getKeyFromID(id); | ||
3437 | rootByKey[key] = true; | ||
3438 | } | ||
3439 | } | ||
3440 | |||
3441 | function removeRoot(id) { | ||
3442 | if (canUseCollections) { | ||
3443 | rootIDSet['delete'](id); | ||
3444 | } else { | ||
3445 | var key = getKeyFromID(id); | ||
3446 | delete rootByKey[key]; | ||
3447 | } | ||
3448 | } | ||
3449 | |||
3450 | function getRegisteredIDs() { | ||
3451 | if (canUseCollections) { | ||
3452 | return Array.from(itemMap.keys()); | ||
3453 | } else { | ||
3454 | return Object.keys(itemByKey).map(getIDFromKey); | ||
3455 | } | ||
3456 | } | ||
3457 | |||
3458 | function getRootIDs() { | ||
3459 | if (canUseCollections) { | ||
3460 | return Array.from(rootIDSet.keys()); | ||
3461 | } else { | ||
3462 | return Object.keys(rootByKey).map(getIDFromKey); | ||
3369 | } | 3463 | } |
3370 | update(tree[id]); | ||
3371 | } | 3464 | } |
3372 | 3465 | ||
3373 | function purgeDeep(id) { | 3466 | function purgeDeep(id) { |
3374 | var item = tree[id]; | 3467 | var item = get(id); |
3375 | if (item) { | 3468 | if (item) { |
3376 | var childIDs = item.childIDs; | 3469 | var childIDs = item.childIDs; |
3377 | 3470 | ||
3378 | delete tree[id]; | 3471 | remove(id); |
3379 | childIDs.forEach(purgeDeep); | 3472 | childIDs.forEach(purgeDeep); |
3380 | } | 3473 | } |
3381 | } | 3474 | } |
@@ -3384,102 +3477,109 @@ | |||
3384 | return '\n in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); | 3477 | return '\n in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); |
3385 | } | 3478 | } |
3386 | 3479 | ||
3480 | function getDisplayName(element) { | ||
3481 | if (element == null) { | ||
3482 | return '#empty'; | ||
3483 | } else if (typeof element === 'string' || typeof element === 'number') { | ||
3484 | return '#text'; | ||
3485 | } else if (typeof element.type === 'string') { | ||
3486 | return element.type; | ||
3487 | } else { | ||
3488 | return element.type.displayName || element.type.name || 'Unknown'; | ||
3489 | } | ||
3490 | } | ||
3491 | |||
3387 | function describeID(id) { | 3492 | function describeID(id) { |
3388 | var name = ReactComponentTreeDevtool.getDisplayName(id); | 3493 | var name = ReactComponentTreeHook.getDisplayName(id); |
3389 | var element = ReactComponentTreeDevtool.getElement(id); | 3494 | var element = ReactComponentTreeHook.getElement(id); |
3390 | var ownerID = ReactComponentTreeDevtool.getOwnerID(id); | 3495 | var ownerID = ReactComponentTreeHook.getOwnerID(id); |
3391 | var ownerName; | 3496 | var ownerName; |
3392 | if (ownerID) { | 3497 | if (ownerID) { |
3393 | ownerName = ReactComponentTreeDevtool.getDisplayName(ownerID); | 3498 | ownerName = ReactComponentTreeHook.getDisplayName(ownerID); |
3394 | } | 3499 | } |
3395 | process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeDevtool: Missing React element for debugID %s when ' + 'building stack', id) : void 0; | 3500 | process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; |
3396 | return describeComponentFrame(name, element && element._source, ownerName); | 3501 | return describeComponentFrame(name, element && element._source, ownerName); |
3397 | } | 3502 | } |
3398 | 3503 | ||
3399 | var ReactComponentTreeDevtool = { | 3504 | var ReactComponentTreeHook = { |
3400 | onSetDisplayName: function (id, displayName) { | ||
3401 | updateTree(id, function (item) { | ||
3402 | return item.displayName = displayName; | ||
3403 | }); | ||
3404 | }, | ||
3405 | onSetChildren: function (id, nextChildIDs) { | 3505 | onSetChildren: function (id, nextChildIDs) { |
3406 | updateTree(id, function (item) { | 3506 | var item = get(id); |
3407 | item.childIDs = nextChildIDs; | 3507 | item.childIDs = nextChildIDs; |
3408 | 3508 | ||
3409 | nextChildIDs.forEach(function (nextChildID) { | 3509 | for (var i = 0; i < nextChildIDs.length; i++) { |
3410 | var nextChild = tree[nextChildID]; | 3510 | var nextChildID = nextChildIDs[i]; |
3411 | !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected devtool events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('68') : void 0; | 3511 | var nextChild = get(nextChildID); |
3412 | !(nextChild.displayName != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetDisplayName() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('69') : void 0; | 3512 | !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; |
3413 | !(nextChild.childIDs != null || nextChild.text != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() or onSetText() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('70') : void 0; | 3513 | !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; |
3414 | !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; | 3514 | !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; |
3415 | if (nextChild.parentID == null) { | 3515 | if (nextChild.parentID == null) { |
3416 | nextChild.parentID = id; | 3516 | nextChild.parentID = id; |
3417 | // TODO: This shouldn't be necessary but mounting a new root during in | 3517 | // TODO: This shouldn't be necessary but mounting a new root during in |
3418 | // componentWillMount currently causes not-yet-mounted components to | 3518 | // componentWillMount currently causes not-yet-mounted components to |
3419 | // be purged from our tree data so their parent ID is missing. | 3519 | // be purged from our tree data so their parent ID is missing. |
3420 | } | 3520 | } |
3421 | !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetParent() and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('72', nextChildID, nextChild.parentID, id) : void 0; | 3521 | !(nextChild.parentID === id) ? process.env.NODE_ENV !== '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; |
3422 | }); | 3522 | } |
3423 | }); | ||
3424 | }, | ||
3425 | onSetOwner: function (id, ownerID) { | ||
3426 | updateTree(id, function (item) { | ||
3427 | return item.ownerID = ownerID; | ||
3428 | }); | ||
3429 | }, | ||
3430 | onSetParent: function (id, parentID) { | ||
3431 | updateTree(id, function (item) { | ||
3432 | return item.parentID = parentID; | ||
3433 | }); | ||
3434 | }, | ||
3435 | onSetText: function (id, text) { | ||
3436 | updateTree(id, function (item) { | ||
3437 | return item.text = text; | ||
3438 | }); | ||
3439 | }, | 3523 | }, |
3440 | onBeforeMountComponent: function (id, element) { | 3524 | onBeforeMountComponent: function (id, element, parentID) { |
3441 | updateTree(id, function (item) { | 3525 | create(id, element, parentID); |
3442 | return item.element = element; | ||
3443 | }); | ||
3444 | }, | 3526 | }, |
3445 | onBeforeUpdateComponent: function (id, element) { | 3527 | onBeforeUpdateComponent: function (id, element) { |
3446 | updateTree(id, function (item) { | 3528 | var item = get(id); |
3447 | return item.element = element; | 3529 | if (!item || !item.isMounted) { |
3448 | }); | 3530 | // We may end up here as a result of setState() in componentWillUnmount(). |
3531 | // In this case, ignore the element. | ||
3532 | return; | ||
3533 | } | ||
3534 | item.element = element; | ||
3449 | }, | 3535 | }, |
3450 | onMountComponent: function (id) { | 3536 | onMountComponent: function (id) { |
3451 | updateTree(id, function (item) { | 3537 | var item = get(id); |
3452 | return item.isMounted = true; | 3538 | item.isMounted = true; |
3453 | }); | 3539 | var isRoot = item.parentID === 0; |
3454 | }, | 3540 | if (isRoot) { |
3455 | onMountRootComponent: function (id) { | 3541 | addRoot(id); |
3456 | rootIDs[id] = true; | 3542 | } |
3457 | }, | 3543 | }, |
3458 | onUpdateComponent: function (id) { | 3544 | onUpdateComponent: function (id) { |
3459 | updateTree(id, function (item) { | 3545 | var item = get(id); |
3460 | return item.updateCount++; | 3546 | if (!item || !item.isMounted) { |
3461 | }); | 3547 | // We may end up here as a result of setState() in componentWillUnmount(). |
3548 | // In this case, ignore the element. | ||
3549 | return; | ||
3550 | } | ||
3551 | item.updateCount++; | ||
3462 | }, | 3552 | }, |
3463 | onUnmountComponent: function (id) { | 3553 | onUnmountComponent: function (id) { |
3464 | updateTree(id, function (item) { | 3554 | var item = get(id); |
3465 | return item.isMounted = false; | 3555 | if (item) { |
3466 | }); | 3556 | // We need to check if it exists. |
3467 | unmountedIDs[id] = true; | 3557 | // `item` might not exist if it is inside an error boundary, and a sibling |
3468 | delete rootIDs[id]; | 3558 | // error boundary child threw while mounting. Then this instance never |
3559 | // got a chance to mount, but it still gets an unmounting event during | ||
3560 | // the error boundary cleanup. | ||
3561 | item.isMounted = false; | ||
3562 | var isRoot = item.parentID === 0; | ||
3563 | if (isRoot) { | ||
3564 | removeRoot(id); | ||
3565 | } | ||
3566 | } | ||
3567 | unmountedIDs.push(id); | ||
3469 | }, | 3568 | }, |
3470 | purgeUnmountedComponents: function () { | 3569 | purgeUnmountedComponents: function () { |
3471 | if (ReactComponentTreeDevtool._preventPurging) { | 3570 | if (ReactComponentTreeHook._preventPurging) { |
3472 | // Should only be used for testing. | 3571 | // Should only be used for testing. |
3473 | return; | 3572 | return; |
3474 | } | 3573 | } |
3475 | 3574 | ||
3476 | for (var id in unmountedIDs) { | 3575 | for (var i = 0; i < unmountedIDs.length; i++) { |
3576 | var id = unmountedIDs[i]; | ||
3477 | purgeDeep(id); | 3577 | purgeDeep(id); |
3478 | } | 3578 | } |
3479 | unmountedIDs = {}; | 3579 | unmountedIDs.length = 0; |
3480 | }, | 3580 | }, |
3481 | isMounted: function (id) { | 3581 | isMounted: function (id) { |
3482 | var item = tree[id]; | 3582 | var item = get(id); |
3483 | return item ? item.isMounted : false; | 3583 | return item ? item.isMounted : false; |
3484 | }, | 3584 | }, |
3485 | getCurrentStackAddendum: function (topElement) { | 3585 | getCurrentStackAddendum: function (topElement) { |
@@ -3494,64 +3594,75 @@ | |||
3494 | var currentOwner = ReactCurrentOwner.current; | 3594 | var currentOwner = ReactCurrentOwner.current; |
3495 | var id = currentOwner && currentOwner._debugID; | 3595 | var id = currentOwner && currentOwner._debugID; |
3496 | 3596 | ||
3497 | info += ReactComponentTreeDevtool.getStackAddendumByID(id); | 3597 | info += ReactComponentTreeHook.getStackAddendumByID(id); |
3498 | return info; | 3598 | return info; |
3499 | }, | 3599 | }, |
3500 | getStackAddendumByID: function (id) { | 3600 | getStackAddendumByID: function (id) { |
3501 | var info = ''; | 3601 | var info = ''; |
3502 | while (id) { | 3602 | while (id) { |
3503 | info += describeID(id); | 3603 | info += describeID(id); |
3504 | id = ReactComponentTreeDevtool.getParentID(id); | 3604 | id = ReactComponentTreeHook.getParentID(id); |
3505 | } | 3605 | } |
3506 | return info; | 3606 | return info; |
3507 | }, | 3607 | }, |
3508 | getChildIDs: function (id) { | 3608 | getChildIDs: function (id) { |
3509 | var item = tree[id]; | 3609 | var item = get(id); |
3510 | return item ? item.childIDs : []; | 3610 | return item ? item.childIDs : []; |
3511 | }, | 3611 | }, |
3512 | getDisplayName: function (id) { | 3612 | getDisplayName: function (id) { |
3513 | var item = tree[id]; | 3613 | var element = ReactComponentTreeHook.getElement(id); |
3514 | return item ? item.displayName : 'Unknown'; | 3614 | if (!element) { |
3615 | return null; | ||
3616 | } | ||
3617 | return getDisplayName(element); | ||
3515 | }, | 3618 | }, |
3516 | getElement: function (id) { | 3619 | getElement: function (id) { |
3517 | var item = tree[id]; | 3620 | var item = get(id); |
3518 | return item ? item.element : null; | 3621 | return item ? item.element : null; |
3519 | }, | 3622 | }, |
3520 | getOwnerID: function (id) { | 3623 | getOwnerID: function (id) { |
3521 | var item = tree[id]; | 3624 | var element = ReactComponentTreeHook.getElement(id); |
3522 | return item ? item.ownerID : null; | 3625 | if (!element || !element._owner) { |
3626 | return null; | ||
3627 | } | ||
3628 | return element._owner._debugID; | ||
3523 | }, | 3629 | }, |
3524 | getParentID: function (id) { | 3630 | getParentID: function (id) { |
3525 | var item = tree[id]; | 3631 | var item = get(id); |
3526 | return item ? item.parentID : null; | 3632 | return item ? item.parentID : null; |
3527 | }, | 3633 | }, |
3528 | getSource: function (id) { | 3634 | getSource: function (id) { |
3529 | var item = tree[id]; | 3635 | var item = get(id); |
3530 | var element = item ? item.element : null; | 3636 | var element = item ? item.element : null; |
3531 | var source = element != null ? element._source : null; | 3637 | var source = element != null ? element._source : null; |
3532 | return source; | 3638 | return source; |
3533 | }, | 3639 | }, |
3534 | getText: function (id) { | 3640 | getText: function (id) { |
3535 | var item = tree[id]; | 3641 | var element = ReactComponentTreeHook.getElement(id); |
3536 | return item ? item.text : null; | 3642 | if (typeof element === 'string') { |
3643 | return element; | ||
3644 | } else if (typeof element === 'number') { | ||
3645 | return '' + element; | ||
3646 | } else { | ||
3647 | return null; | ||
3648 | } | ||
3537 | }, | 3649 | }, |
3538 | getUpdateCount: function (id) { | 3650 | getUpdateCount: function (id) { |
3539 | var item = tree[id]; | 3651 | var item = get(id); |
3540 | return item ? item.updateCount : 0; | 3652 | return item ? item.updateCount : 0; |
3541 | }, | 3653 | }, |
3542 | getRootIDs: function () { | 3654 | |
3543 | return Object.keys(rootIDs); | 3655 | |
3544 | }, | 3656 | getRegisteredIDs: getRegisteredIDs, |
3545 | getRegisteredIDs: function () { | 3657 | |
3546 | return Object.keys(tree); | 3658 | getRootIDs: getRootIDs |
3547 | } | ||
3548 | }; | 3659 | }; |
3549 | 3660 | ||
3550 | module.exports = ReactComponentTreeDevtool; | 3661 | module.exports = ReactComponentTreeHook; |
3551 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 3662 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
3552 | 3663 | ||
3553 | /***/ }, | 3664 | /***/ }, |
3554 | /* 32 */ | 3665 | /* 31 */ |
3555 | /***/ function(module, exports, __webpack_require__) { | 3666 | /***/ function(module, exports, __webpack_require__) { |
3556 | 3667 | ||
3557 | /* WEBPACK VAR INJECTION */(function(process) {/** | 3668 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -3570,12 +3681,12 @@ | |||
3570 | var _prodInvariant = __webpack_require__(9); | 3681 | var _prodInvariant = __webpack_require__(9); |
3571 | 3682 | ||
3572 | var ReactPropTypeLocationNames = __webpack_require__(26); | 3683 | var ReactPropTypeLocationNames = __webpack_require__(26); |
3573 | var ReactPropTypesSecret = __webpack_require__(33); | 3684 | var ReactPropTypesSecret = __webpack_require__(32); |
3574 | 3685 | ||
3575 | var invariant = __webpack_require__(10); | 3686 | var invariant = __webpack_require__(10); |
3576 | var warning = __webpack_require__(13); | 3687 | var warning = __webpack_require__(13); |
3577 | 3688 | ||
3578 | var ReactComponentTreeDevtool; | 3689 | var ReactComponentTreeHook; |
3579 | 3690 | ||
3580 | if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { | 3691 | if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { |
3581 | // Temporary hack. | 3692 | // Temporary hack. |
@@ -3583,7 +3694,7 @@ | |||
3583 | // https://github.com/facebook/react/issues/7240 | 3694 | // https://github.com/facebook/react/issues/7240 |
3584 | // Remove the inline requires when we don't need them anymore: | 3695 | // Remove the inline requires when we don't need them anymore: |
3585 | // https://github.com/facebook/react/pull/7178 | 3696 | // https://github.com/facebook/react/pull/7178 |
3586 | ReactComponentTreeDevtool = __webpack_require__(31); | 3697 | ReactComponentTreeHook = __webpack_require__(30); |
3587 | } | 3698 | } |
3588 | 3699 | ||
3589 | var loggedTypeFailures = {}; | 3700 | var loggedTypeFailures = {}; |
@@ -3624,13 +3735,13 @@ | |||
3624 | var componentStackInfo = ''; | 3735 | var componentStackInfo = ''; |
3625 | 3736 | ||
3626 | if (process.env.NODE_ENV !== 'production') { | 3737 | if (process.env.NODE_ENV !== 'production') { |
3627 | if (!ReactComponentTreeDevtool) { | 3738 | if (!ReactComponentTreeHook) { |
3628 | ReactComponentTreeDevtool = __webpack_require__(31); | 3739 | ReactComponentTreeHook = __webpack_require__(30); |
3629 | } | 3740 | } |
3630 | if (debugID !== null) { | 3741 | if (debugID !== null) { |
3631 | componentStackInfo = ReactComponentTreeDevtool.getStackAddendumByID(debugID); | 3742 | componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); |
3632 | } else if (element !== null) { | 3743 | } else if (element !== null) { |
3633 | componentStackInfo = ReactComponentTreeDevtool.getCurrentStackAddendum(element); | 3744 | componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element); |
3634 | } | 3745 | } |
3635 | } | 3746 | } |
3636 | 3747 | ||
@@ -3644,7 +3755,7 @@ | |||
3644 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 3755 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
3645 | 3756 | ||
3646 | /***/ }, | 3757 | /***/ }, |
3647 | /* 33 */ | 3758 | /* 32 */ |
3648 | /***/ function(module, exports) { | 3759 | /***/ function(module, exports) { |
3649 | 3760 | ||
3650 | /** | 3761 | /** |
@@ -3665,7 +3776,7 @@ | |||
3665 | module.exports = ReactPropTypesSecret; | 3776 | module.exports = ReactPropTypesSecret; |
3666 | 3777 | ||
3667 | /***/ }, | 3778 | /***/ }, |
3668 | /* 34 */ | 3779 | /* 33 */ |
3669 | /***/ function(module, exports, __webpack_require__) { | 3780 | /***/ function(module, exports, __webpack_require__) { |
3670 | 3781 | ||
3671 | /* WEBPACK VAR INJECTION */(function(process) {/** | 3782 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -3683,7 +3794,7 @@ | |||
3683 | 3794 | ||
3684 | var ReactElement = __webpack_require__(11); | 3795 | var ReactElement = __webpack_require__(11); |
3685 | var ReactPropTypeLocationNames = __webpack_require__(26); | 3796 | var ReactPropTypeLocationNames = __webpack_require__(26); |
3686 | var ReactPropTypesSecret = __webpack_require__(33); | 3797 | var ReactPropTypesSecret = __webpack_require__(32); |
3687 | 3798 | ||
3688 | var emptyFunction = __webpack_require__(14); | 3799 | var emptyFunction = __webpack_require__(14); |
3689 | var getIteratorFn = __webpack_require__(17); | 3800 | var getIteratorFn = __webpack_require__(17); |
@@ -3776,6 +3887,20 @@ | |||
3776 | } | 3887 | } |
3777 | /*eslint-enable no-self-compare*/ | 3888 | /*eslint-enable no-self-compare*/ |
3778 | 3889 | ||
3890 | /** | ||
3891 | * We use an Error-like object for backward compatibility as people may call | ||
3892 | * PropTypes directly and inspect their output. However we don't use real | ||
3893 | * Errors anymore. We don't inspect their stack anyway, and creating them | ||
3894 | * is prohibitively expensive if they are created too often, such as what | ||
3895 | * happens in oneOfType() for any type before the one that matched. | ||
3896 | */ | ||
3897 | function PropTypeError(message) { | ||
3898 | this.message = message; | ||
3899 | this.stack = ''; | ||
3900 | } | ||
3901 | // Make `instanceof Error` still work for returned errors. | ||
3902 | PropTypeError.prototype = Error.prototype; | ||
3903 | |||
3779 | function createChainableTypeChecker(validate) { | 3904 | function createChainableTypeChecker(validate) { |
3780 | if (process.env.NODE_ENV !== 'production') { | 3905 | if (process.env.NODE_ENV !== 'production') { |
3781 | var manualPropTypeCallCache = {}; | 3906 | var manualPropTypeCallCache = {}; |
@@ -3795,7 +3920,7 @@ | |||
3795 | if (props[propName] == null) { | 3920 | if (props[propName] == null) { |
3796 | var locationName = ReactPropTypeLocationNames[location]; | 3921 | var locationName = ReactPropTypeLocationNames[location]; |
3797 | if (isRequired) { | 3922 | if (isRequired) { |
3798 | return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.')); | 3923 | return new PropTypeError('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.')); |
3799 | } | 3924 | } |
3800 | return null; | 3925 | return null; |
3801 | } else { | 3926 | } else { |
@@ -3820,7 +3945,7 @@ | |||
3820 | // 'of type `object`'. | 3945 | // 'of type `object`'. |
3821 | var preciseType = getPreciseType(propValue); | 3946 | var preciseType = getPreciseType(propValue); |
3822 | 3947 | ||
3823 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); | 3948 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); |
3824 | } | 3949 | } |
3825 | return null; | 3950 | return null; |
3826 | } | 3951 | } |
@@ -3834,13 +3959,13 @@ | |||
3834 | function createArrayOfTypeChecker(typeChecker) { | 3959 | function createArrayOfTypeChecker(typeChecker) { |
3835 | function validate(props, propName, componentName, location, propFullName) { | 3960 | function validate(props, propName, componentName, location, propFullName) { |
3836 | if (typeof typeChecker !== 'function') { | 3961 | if (typeof typeChecker !== 'function') { |
3837 | return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); | 3962 | return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); |
3838 | } | 3963 | } |
3839 | var propValue = props[propName]; | 3964 | var propValue = props[propName]; |
3840 | if (!Array.isArray(propValue)) { | 3965 | if (!Array.isArray(propValue)) { |
3841 | var locationName = ReactPropTypeLocationNames[location]; | 3966 | var locationName = ReactPropTypeLocationNames[location]; |
3842 | var propType = getPropType(propValue); | 3967 | var propType = getPropType(propValue); |
3843 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); | 3968 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); |
3844 | } | 3969 | } |
3845 | for (var i = 0; i < propValue.length; i++) { | 3970 | for (var i = 0; i < propValue.length; i++) { |
3846 | var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); | 3971 | var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); |
@@ -3859,7 +3984,7 @@ | |||
3859 | if (!ReactElement.isValidElement(propValue)) { | 3984 | if (!ReactElement.isValidElement(propValue)) { |
3860 | var locationName = ReactPropTypeLocationNames[location]; | 3985 | var locationName = ReactPropTypeLocationNames[location]; |
3861 | var propType = getPropType(propValue); | 3986 | var propType = getPropType(propValue); |
3862 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); | 3987 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); |
3863 | } | 3988 | } |
3864 | return null; | 3989 | return null; |
3865 | } | 3990 | } |
@@ -3872,7 +3997,7 @@ | |||
3872 | var locationName = ReactPropTypeLocationNames[location]; | 3997 | var locationName = ReactPropTypeLocationNames[location]; |
3873 | var expectedClassName = expectedClass.name || ANONYMOUS; | 3998 | var expectedClassName = expectedClass.name || ANONYMOUS; |
3874 | var actualClassName = getClassName(props[propName]); | 3999 | var actualClassName = getClassName(props[propName]); |
3875 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); | 4000 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); |
3876 | } | 4001 | } |
3877 | return null; | 4002 | return null; |
3878 | } | 4003 | } |
@@ -3895,7 +4020,7 @@ | |||
3895 | 4020 | ||
3896 | var locationName = ReactPropTypeLocationNames[location]; | 4021 | var locationName = ReactPropTypeLocationNames[location]; |
3897 | var valuesString = JSON.stringify(expectedValues); | 4022 | var valuesString = JSON.stringify(expectedValues); |
3898 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); | 4023 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); |
3899 | } | 4024 | } |
3900 | return createChainableTypeChecker(validate); | 4025 | return createChainableTypeChecker(validate); |
3901 | } | 4026 | } |
@@ -3903,13 +4028,13 @@ | |||
3903 | function createObjectOfTypeChecker(typeChecker) { | 4028 | function createObjectOfTypeChecker(typeChecker) { |
3904 | function validate(props, propName, componentName, location, propFullName) { | 4029 | function validate(props, propName, componentName, location, propFullName) { |
3905 | if (typeof typeChecker !== 'function') { | 4030 | if (typeof typeChecker !== 'function') { |
3906 | return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); | 4031 | return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); |
3907 | } | 4032 | } |
3908 | var propValue = props[propName]; | 4033 | var propValue = props[propName]; |
3909 | var propType = getPropType(propValue); | 4034 | var propType = getPropType(propValue); |
3910 | if (propType !== 'object') { | 4035 | if (propType !== 'object') { |
3911 | var locationName = ReactPropTypeLocationNames[location]; | 4036 | var locationName = ReactPropTypeLocationNames[location]; |
3912 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); | 4037 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); |
3913 | } | 4038 | } |
3914 | for (var key in propValue) { | 4039 | for (var key in propValue) { |
3915 | if (propValue.hasOwnProperty(key)) { | 4040 | if (propValue.hasOwnProperty(key)) { |
@@ -3939,7 +4064,7 @@ | |||
3939 | } | 4064 | } |
3940 | 4065 | ||
3941 | var locationName = ReactPropTypeLocationNames[location]; | 4066 | var locationName = ReactPropTypeLocationNames[location]; |
3942 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); | 4067 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); |
3943 | } | 4068 | } |
3944 | return createChainableTypeChecker(validate); | 4069 | return createChainableTypeChecker(validate); |
3945 | } | 4070 | } |
@@ -3948,7 +4073,7 @@ | |||
3948 | function validate(props, propName, componentName, location, propFullName) { | 4073 | function validate(props, propName, componentName, location, propFullName) { |
3949 | if (!isNode(props[propName])) { | 4074 | if (!isNode(props[propName])) { |
3950 | var locationName = ReactPropTypeLocationNames[location]; | 4075 | var locationName = ReactPropTypeLocationNames[location]; |
3951 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); | 4076 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); |
3952 | } | 4077 | } |
3953 | return null; | 4078 | return null; |
3954 | } | 4079 | } |
@@ -3961,7 +4086,7 @@ | |||
3961 | var propType = getPropType(propValue); | 4086 | var propType = getPropType(propValue); |
3962 | if (propType !== 'object') { | 4087 | if (propType !== 'object') { |
3963 | var locationName = ReactPropTypeLocationNames[location]; | 4088 | var locationName = ReactPropTypeLocationNames[location]; |
3964 | return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); | 4089 | return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); |
3965 | } | 4090 | } |
3966 | for (var key in shapeTypes) { | 4091 | for (var key in shapeTypes) { |
3967 | var checker = shapeTypes[key]; | 4092 | var checker = shapeTypes[key]; |
@@ -4088,7 +4213,7 @@ | |||
4088 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 4213 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
4089 | 4214 | ||
4090 | /***/ }, | 4215 | /***/ }, |
4091 | /* 35 */ | 4216 | /* 34 */ |
4092 | /***/ function(module, exports) { | 4217 | /***/ function(module, exports) { |
4093 | 4218 | ||
4094 | /** | 4219 | /** |
@@ -4104,10 +4229,10 @@ | |||
4104 | 4229 | ||
4105 | 'use strict'; | 4230 | 'use strict'; |
4106 | 4231 | ||
4107 | module.exports = '15.3.0'; | 4232 | module.exports = '15.3.2'; |
4108 | 4233 | ||
4109 | /***/ }, | 4234 | /***/ }, |
4110 | /* 36 */ | 4235 | /* 35 */ |
4111 | /***/ function(module, exports, __webpack_require__) { | 4236 | /***/ function(module, exports, __webpack_require__) { |
4112 | 4237 | ||
4113 | /* WEBPACK VAR INJECTION */(function(process) {/** | 4238 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -4143,7 +4268,7 @@ | |||
4143 | * structure. | 4268 | * structure. |
4144 | */ | 4269 | */ |
4145 | function onlyChild(children) { | 4270 | function onlyChild(children) { |
4146 | !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : _prodInvariant('23') : void 0; | 4271 | !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0; |
4147 | return children; | 4272 | return children; |
4148 | } | 4273 | } |
4149 | 4274 | ||
@@ -4151,16 +4276,16 @@ | |||
4151 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 4276 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
4152 | 4277 | ||
4153 | /***/ }, | 4278 | /***/ }, |
4154 | /* 37 */ | 4279 | /* 36 */ |
4155 | /***/ function(module, exports, __webpack_require__) { | 4280 | /***/ function(module, exports, __webpack_require__) { |
4156 | 4281 | ||
4157 | 'use strict'; | 4282 | 'use strict'; |
4158 | 4283 | ||
4159 | module.exports = __webpack_require__(38); | 4284 | module.exports = __webpack_require__(37); |
4160 | 4285 | ||
4161 | 4286 | ||
4162 | /***/ }, | 4287 | /***/ }, |
4163 | /* 38 */ | 4288 | /* 37 */ |
4164 | /***/ function(module, exports, __webpack_require__) { | 4289 | /***/ function(module, exports, __webpack_require__) { |
4165 | 4290 | ||
4166 | /* WEBPACK VAR INJECTION */(function(process) {/** | 4291 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -4178,16 +4303,16 @@ | |||
4178 | 4303 | ||
4179 | 'use strict'; | 4304 | 'use strict'; |
4180 | 4305 | ||
4181 | var ReactDOMComponentTree = __webpack_require__(39); | 4306 | var ReactDOMComponentTree = __webpack_require__(38); |
4182 | var ReactDefaultInjection = __webpack_require__(42); | 4307 | var ReactDefaultInjection = __webpack_require__(41); |
4183 | var ReactMount = __webpack_require__(169); | 4308 | var ReactMount = __webpack_require__(164); |
4184 | var ReactReconciler = __webpack_require__(62); | 4309 | var ReactReconciler = __webpack_require__(61); |
4185 | var ReactUpdates = __webpack_require__(59); | 4310 | var ReactUpdates = __webpack_require__(58); |
4186 | var ReactVersion = __webpack_require__(35); | 4311 | var ReactVersion = __webpack_require__(34); |
4187 | 4312 | ||
4188 | var findDOMNode = __webpack_require__(174); | 4313 | var findDOMNode = __webpack_require__(169); |
4189 | var getHostComponentFromComposite = __webpack_require__(175); | 4314 | var getHostComponentFromComposite = __webpack_require__(170); |
4190 | var renderSubtreeIntoContainer = __webpack_require__(176); | 4315 | var renderSubtreeIntoContainer = __webpack_require__(171); |
4191 | var warning = __webpack_require__(13); | 4316 | var warning = __webpack_require__(13); |
4192 | 4317 | ||
4193 | ReactDefaultInjection.inject(); | 4318 | ReactDefaultInjection.inject(); |
@@ -4228,7 +4353,7 @@ | |||
4228 | } | 4353 | } |
4229 | 4354 | ||
4230 | if (process.env.NODE_ENV !== 'production') { | 4355 | if (process.env.NODE_ENV !== 'production') { |
4231 | var ExecutionEnvironment = __webpack_require__(52); | 4356 | var ExecutionEnvironment = __webpack_require__(51); |
4232 | if (ExecutionEnvironment.canUseDOM && window.top === window.self) { | 4357 | if (ExecutionEnvironment.canUseDOM && window.top === window.self) { |
4233 | 4358 | ||
4234 | // First check if devtools is not installed | 4359 | // First check if devtools is not installed |
@@ -4263,11 +4388,20 @@ | |||
4263 | } | 4388 | } |
4264 | } | 4389 | } |
4265 | 4390 | ||
4391 | if (process.env.NODE_ENV !== 'production') { | ||
4392 | var ReactInstrumentation = __webpack_require__(64); | ||
4393 | var ReactDOMUnknownPropertyHook = __webpack_require__(172); | ||
4394 | var ReactDOMNullInputValuePropHook = __webpack_require__(173); | ||
4395 | |||
4396 | ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook); | ||
4397 | ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook); | ||
4398 | } | ||
4399 | |||
4266 | module.exports = ReactDOM; | 4400 | module.exports = ReactDOM; |
4267 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 4401 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
4268 | 4402 | ||
4269 | /***/ }, | 4403 | /***/ }, |
4270 | /* 39 */ | 4404 | /* 38 */ |
4271 | /***/ function(module, exports, __webpack_require__) { | 4405 | /***/ function(module, exports, __webpack_require__) { |
4272 | 4406 | ||
4273 | /* WEBPACK VAR INJECTION */(function(process) {/** | 4407 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -4285,8 +4419,8 @@ | |||
4285 | 4419 | ||
4286 | var _prodInvariant = __webpack_require__(9); | 4420 | var _prodInvariant = __webpack_require__(9); |
4287 | 4421 | ||
4288 | var DOMProperty = __webpack_require__(40); | 4422 | var DOMProperty = __webpack_require__(39); |
4289 | var ReactDOMComponentFlags = __webpack_require__(41); | 4423 | var ReactDOMComponentFlags = __webpack_require__(40); |
4290 | 4424 | ||
4291 | var invariant = __webpack_require__(10); | 4425 | var invariant = __webpack_require__(10); |
4292 | 4426 | ||
@@ -4354,7 +4488,7 @@ | |||
4354 | } | 4488 | } |
4355 | var childInst = children[name]; | 4489 | var childInst = children[name]; |
4356 | var childID = getRenderedHostOrTextFromComponent(childInst)._domID; | 4490 | var childID = getRenderedHostOrTextFromComponent(childInst)._domID; |
4357 | if (childID == null) { | 4491 | if (childID === 0) { |
4358 | // We're currently unmounting this child in ReactMultiChild; skip it. | 4492 | // We're currently unmounting this child in ReactMultiChild; skip it. |
4359 | continue; | 4493 | continue; |
4360 | } | 4494 | } |
@@ -4461,7 +4595,7 @@ | |||
4461 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 4595 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
4462 | 4596 | ||
4463 | /***/ }, | 4597 | /***/ }, |
4464 | /* 40 */ | 4598 | /* 39 */ |
4465 | /***/ function(module, exports, __webpack_require__) { | 4599 | /***/ function(module, exports, __webpack_require__) { |
4466 | 4600 | ||
4467 | /* WEBPACK VAR INJECTION */(function(process) {/** | 4601 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -4673,7 +4807,7 @@ | |||
4673 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 4807 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
4674 | 4808 | ||
4675 | /***/ }, | 4809 | /***/ }, |
4676 | /* 41 */ | 4810 | /* 40 */ |
4677 | /***/ function(module, exports) { | 4811 | /***/ function(module, exports) { |
4678 | 4812 | ||
4679 | /** | 4813 | /** |
@@ -4696,7 +4830,7 @@ | |||
4696 | module.exports = ReactDOMComponentFlags; | 4830 | module.exports = ReactDOMComponentFlags; |
4697 | 4831 | ||
4698 | /***/ }, | 4832 | /***/ }, |
4699 | /* 42 */ | 4833 | /* 41 */ |
4700 | /***/ function(module, exports, __webpack_require__) { | 4834 | /***/ function(module, exports, __webpack_require__) { |
4701 | 4835 | ||
4702 | /** | 4836 | /** |
@@ -4712,24 +4846,24 @@ | |||
4712 | 4846 | ||
4713 | 'use strict'; | 4847 | 'use strict'; |
4714 | 4848 | ||
4715 | var BeforeInputEventPlugin = __webpack_require__(43); | 4849 | var BeforeInputEventPlugin = __webpack_require__(42); |
4716 | var ChangeEventPlugin = __webpack_require__(58); | 4850 | var ChangeEventPlugin = __webpack_require__(57); |
4717 | var DefaultEventPluginOrder = __webpack_require__(76); | 4851 | var DefaultEventPluginOrder = __webpack_require__(75); |
4718 | var EnterLeaveEventPlugin = __webpack_require__(77); | 4852 | var EnterLeaveEventPlugin = __webpack_require__(76); |
4719 | var HTMLDOMPropertyConfig = __webpack_require__(82); | 4853 | var HTMLDOMPropertyConfig = __webpack_require__(81); |
4720 | var ReactComponentBrowserEnvironment = __webpack_require__(83); | 4854 | var ReactComponentBrowserEnvironment = __webpack_require__(82); |
4721 | var ReactDOMComponent = __webpack_require__(97); | 4855 | var ReactDOMComponent = __webpack_require__(96); |
4722 | var ReactDOMComponentTree = __webpack_require__(39); | 4856 | var ReactDOMComponentTree = __webpack_require__(38); |
4723 | var ReactDOMEmptyComponent = __webpack_require__(140); | 4857 | var ReactDOMEmptyComponent = __webpack_require__(135); |
4724 | var ReactDOMTreeTraversal = __webpack_require__(141); | 4858 | var ReactDOMTreeTraversal = __webpack_require__(136); |
4725 | var ReactDOMTextComponent = __webpack_require__(142); | 4859 | var ReactDOMTextComponent = __webpack_require__(137); |
4726 | var ReactDefaultBatchingStrategy = __webpack_require__(143); | 4860 | var ReactDefaultBatchingStrategy = __webpack_require__(138); |
4727 | var ReactEventListener = __webpack_require__(144); | 4861 | var ReactEventListener = __webpack_require__(139); |
4728 | var ReactInjection = __webpack_require__(147); | 4862 | var ReactInjection = __webpack_require__(142); |
4729 | var ReactReconcileTransaction = __webpack_require__(148); | 4863 | var ReactReconcileTransaction = __webpack_require__(143); |
4730 | var SVGDOMPropertyConfig = __webpack_require__(156); | 4864 | var SVGDOMPropertyConfig = __webpack_require__(151); |
4731 | var SelectEventPlugin = __webpack_require__(157); | 4865 | var SelectEventPlugin = __webpack_require__(152); |
4732 | var SimpleEventPlugin = __webpack_require__(158); | 4866 | var SimpleEventPlugin = __webpack_require__(153); |
4733 | 4867 | ||
4734 | var alreadyInjected = false; | 4868 | var alreadyInjected = false; |
4735 | 4869 | ||
@@ -4785,7 +4919,7 @@ | |||
4785 | }; | 4919 | }; |
4786 | 4920 | ||
4787 | /***/ }, | 4921 | /***/ }, |
4788 | /* 43 */ | 4922 | /* 42 */ |
4789 | /***/ function(module, exports, __webpack_require__) { | 4923 | /***/ function(module, exports, __webpack_require__) { |
4790 | 4924 | ||
4791 | /** | 4925 | /** |
@@ -4801,12 +4935,12 @@ | |||
4801 | 4935 | ||
4802 | 'use strict'; | 4936 | 'use strict'; |
4803 | 4937 | ||
4804 | var EventConstants = __webpack_require__(44); | 4938 | var EventConstants = __webpack_require__(43); |
4805 | var EventPropagators = __webpack_require__(45); | 4939 | var EventPropagators = __webpack_require__(44); |
4806 | var ExecutionEnvironment = __webpack_require__(52); | 4940 | var ExecutionEnvironment = __webpack_require__(51); |
4807 | var FallbackCompositionState = __webpack_require__(53); | 4941 | var FallbackCompositionState = __webpack_require__(52); |
4808 | var SyntheticCompositionEvent = __webpack_require__(55); | 4942 | var SyntheticCompositionEvent = __webpack_require__(54); |
4809 | var SyntheticInputEvent = __webpack_require__(57); | 4943 | var SyntheticInputEvent = __webpack_require__(56); |
4810 | 4944 | ||
4811 | var keyOf = __webpack_require__(27); | 4945 | var keyOf = __webpack_require__(27); |
4812 | 4946 | ||
@@ -5077,8 +5211,10 @@ | |||
5077 | function getFallbackBeforeInputChars(topLevelType, nativeEvent) { | 5211 | function getFallbackBeforeInputChars(topLevelType, nativeEvent) { |
5078 | // If we are currently composing (IME) and using a fallback to do so, | 5212 | // If we are currently composing (IME) and using a fallback to do so, |
5079 | // try to extract the composed characters from the fallback object. | 5213 | // try to extract the composed characters from the fallback object. |
5214 | // If composition event is available, we extract a string only at | ||
5215 | // compositionevent, otherwise extract it at fallback events. | ||
5080 | if (currentComposition) { | 5216 | if (currentComposition) { |
5081 | if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) { | 5217 | if (topLevelType === topLevelTypes.topCompositionEnd || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) { |
5082 | var chars = currentComposition.getData(); | 5218 | var chars = currentComposition.getData(); |
5083 | FallbackCompositionState.release(currentComposition); | 5219 | FallbackCompositionState.release(currentComposition); |
5084 | currentComposition = null; | 5220 | currentComposition = null; |
@@ -5178,7 +5314,7 @@ | |||
5178 | module.exports = BeforeInputEventPlugin; | 5314 | module.exports = BeforeInputEventPlugin; |
5179 | 5315 | ||
5180 | /***/ }, | 5316 | /***/ }, |
5181 | /* 44 */ | 5317 | /* 43 */ |
5182 | /***/ function(module, exports, __webpack_require__) { | 5318 | /***/ function(module, exports, __webpack_require__) { |
5183 | 5319 | ||
5184 | /** | 5320 | /** |
@@ -5280,7 +5416,7 @@ | |||
5280 | module.exports = EventConstants; | 5416 | module.exports = EventConstants; |
5281 | 5417 | ||
5282 | /***/ }, | 5418 | /***/ }, |
5283 | /* 45 */ | 5419 | /* 44 */ |
5284 | /***/ function(module, exports, __webpack_require__) { | 5420 | /***/ function(module, exports, __webpack_require__) { |
5285 | 5421 | ||
5286 | /* WEBPACK VAR INJECTION */(function(process) {/** | 5422 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -5296,12 +5432,12 @@ | |||
5296 | 5432 | ||
5297 | 'use strict'; | 5433 | 'use strict'; |
5298 | 5434 | ||
5299 | var EventConstants = __webpack_require__(44); | 5435 | var EventConstants = __webpack_require__(43); |
5300 | var EventPluginHub = __webpack_require__(46); | 5436 | var EventPluginHub = __webpack_require__(45); |
5301 | var EventPluginUtils = __webpack_require__(48); | 5437 | var EventPluginUtils = __webpack_require__(47); |
5302 | 5438 | ||
5303 | var accumulateInto = __webpack_require__(50); | 5439 | var accumulateInto = __webpack_require__(49); |
5304 | var forEachAccumulated = __webpack_require__(51); | 5440 | var forEachAccumulated = __webpack_require__(50); |
5305 | var warning = __webpack_require__(13); | 5441 | var warning = __webpack_require__(13); |
5306 | 5442 | ||
5307 | var PropagationPhases = EventConstants.PropagationPhases; | 5443 | var PropagationPhases = EventConstants.PropagationPhases; |
@@ -5423,7 +5559,7 @@ | |||
5423 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 5559 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
5424 | 5560 | ||
5425 | /***/ }, | 5561 | /***/ }, |
5426 | /* 46 */ | 5562 | /* 45 */ |
5427 | /***/ function(module, exports, __webpack_require__) { | 5563 | /***/ function(module, exports, __webpack_require__) { |
5428 | 5564 | ||
5429 | /* WEBPACK VAR INJECTION */(function(process) {/** | 5565 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -5441,12 +5577,12 @@ | |||
5441 | 5577 | ||
5442 | var _prodInvariant = __webpack_require__(9); | 5578 | var _prodInvariant = __webpack_require__(9); |
5443 | 5579 | ||
5444 | var EventPluginRegistry = __webpack_require__(47); | 5580 | var EventPluginRegistry = __webpack_require__(46); |
5445 | var EventPluginUtils = __webpack_require__(48); | 5581 | var EventPluginUtils = __webpack_require__(47); |
5446 | var ReactErrorUtils = __webpack_require__(49); | 5582 | var ReactErrorUtils = __webpack_require__(48); |
5447 | 5583 | ||
5448 | var accumulateInto = __webpack_require__(50); | 5584 | var accumulateInto = __webpack_require__(49); |
5449 | var forEachAccumulated = __webpack_require__(51); | 5585 | var forEachAccumulated = __webpack_require__(50); |
5450 | var invariant = __webpack_require__(10); | 5586 | var invariant = __webpack_require__(10); |
5451 | 5587 | ||
5452 | /** | 5588 | /** |
@@ -5484,6 +5620,8 @@ | |||
5484 | }; | 5620 | }; |
5485 | 5621 | ||
5486 | var getDictionaryKey = function (inst) { | 5622 | var getDictionaryKey = function (inst) { |
5623 | // Prevents V8 performance issue: | ||
5624 | // https://github.com/facebook/react/pull/7232 | ||
5487 | return '.' + inst._rootNodeID; | 5625 | return '.' + inst._rootNodeID; |
5488 | }; | 5626 | }; |
5489 | 5627 | ||
@@ -5678,7 +5816,7 @@ | |||
5678 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 5816 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
5679 | 5817 | ||
5680 | /***/ }, | 5818 | /***/ }, |
5681 | /* 47 */ | 5819 | /* 46 */ |
5682 | /***/ function(module, exports, __webpack_require__) { | 5820 | /***/ function(module, exports, __webpack_require__) { |
5683 | 5821 | ||
5684 | /* WEBPACK VAR INJECTION */(function(process) {/** | 5822 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -5931,7 +6069,7 @@ | |||
5931 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 6069 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
5932 | 6070 | ||
5933 | /***/ }, | 6071 | /***/ }, |
5934 | /* 48 */ | 6072 | /* 47 */ |
5935 | /***/ function(module, exports, __webpack_require__) { | 6073 | /***/ function(module, exports, __webpack_require__) { |
5936 | 6074 | ||
5937 | /* WEBPACK VAR INJECTION */(function(process) {/** | 6075 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -5949,8 +6087,8 @@ | |||
5949 | 6087 | ||
5950 | var _prodInvariant = __webpack_require__(9); | 6088 | var _prodInvariant = __webpack_require__(9); |
5951 | 6089 | ||
5952 | var EventConstants = __webpack_require__(44); | 6090 | var EventConstants = __webpack_require__(43); |
5953 | var ReactErrorUtils = __webpack_require__(49); | 6091 | var ReactErrorUtils = __webpack_require__(48); |
5954 | 6092 | ||
5955 | var invariant = __webpack_require__(10); | 6093 | var invariant = __webpack_require__(10); |
5956 | var warning = __webpack_require__(13); | 6094 | var warning = __webpack_require__(13); |
@@ -6166,7 +6304,7 @@ | |||
6166 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 6304 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
6167 | 6305 | ||
6168 | /***/ }, | 6306 | /***/ }, |
6169 | /* 49 */ | 6307 | /* 48 */ |
6170 | /***/ function(module, exports, __webpack_require__) { | 6308 | /***/ function(module, exports, __webpack_require__) { |
6171 | 6309 | ||
6172 | /* WEBPACK VAR INJECTION */(function(process) {/** | 6310 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -6248,7 +6386,7 @@ | |||
6248 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 6386 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
6249 | 6387 | ||
6250 | /***/ }, | 6388 | /***/ }, |
6251 | /* 50 */ | 6389 | /* 49 */ |
6252 | /***/ function(module, exports, __webpack_require__) { | 6390 | /***/ function(module, exports, __webpack_require__) { |
6253 | 6391 | ||
6254 | /* WEBPACK VAR INJECTION */(function(process) {/** | 6392 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -6312,7 +6450,7 @@ | |||
6312 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 6450 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
6313 | 6451 | ||
6314 | /***/ }, | 6452 | /***/ }, |
6315 | /* 51 */ | 6453 | /* 50 */ |
6316 | /***/ function(module, exports) { | 6454 | /***/ function(module, exports) { |
6317 | 6455 | ||
6318 | /** | 6456 | /** |
@@ -6348,7 +6486,7 @@ | |||
6348 | module.exports = forEachAccumulated; | 6486 | module.exports = forEachAccumulated; |
6349 | 6487 | ||
6350 | /***/ }, | 6488 | /***/ }, |
6351 | /* 52 */ | 6489 | /* 51 */ |
6352 | /***/ function(module, exports) { | 6490 | /***/ function(module, exports) { |
6353 | 6491 | ||
6354 | /** | 6492 | /** |
@@ -6388,7 +6526,7 @@ | |||
6388 | module.exports = ExecutionEnvironment; | 6526 | module.exports = ExecutionEnvironment; |
6389 | 6527 | ||
6390 | /***/ }, | 6528 | /***/ }, |
6391 | /* 53 */ | 6529 | /* 52 */ |
6392 | /***/ function(module, exports, __webpack_require__) { | 6530 | /***/ function(module, exports, __webpack_require__) { |
6393 | 6531 | ||
6394 | /** | 6532 | /** |
@@ -6408,7 +6546,7 @@ | |||
6408 | 6546 | ||
6409 | var PooledClass = __webpack_require__(8); | 6547 | var PooledClass = __webpack_require__(8); |
6410 | 6548 | ||
6411 | var getTextContentAccessor = __webpack_require__(54); | 6549 | var getTextContentAccessor = __webpack_require__(53); |
6412 | 6550 | ||
6413 | /** | 6551 | /** |
6414 | * This helper class stores information about text content of a target node, | 6552 | * This helper class stores information about text content of a target node, |
@@ -6488,7 +6626,7 @@ | |||
6488 | module.exports = FallbackCompositionState; | 6626 | module.exports = FallbackCompositionState; |
6489 | 6627 | ||
6490 | /***/ }, | 6628 | /***/ }, |
6491 | /* 54 */ | 6629 | /* 53 */ |
6492 | /***/ function(module, exports, __webpack_require__) { | 6630 | /***/ function(module, exports, __webpack_require__) { |
6493 | 6631 | ||
6494 | /** | 6632 | /** |
@@ -6504,7 +6642,7 @@ | |||
6504 | 6642 | ||
6505 | 'use strict'; | 6643 | 'use strict'; |
6506 | 6644 | ||
6507 | var ExecutionEnvironment = __webpack_require__(52); | 6645 | var ExecutionEnvironment = __webpack_require__(51); |
6508 | 6646 | ||
6509 | var contentKey = null; | 6647 | var contentKey = null; |
6510 | 6648 | ||
@@ -6526,7 +6664,7 @@ | |||
6526 | module.exports = getTextContentAccessor; | 6664 | module.exports = getTextContentAccessor; |
6527 | 6665 | ||
6528 | /***/ }, | 6666 | /***/ }, |
6529 | /* 55 */ | 6667 | /* 54 */ |
6530 | /***/ function(module, exports, __webpack_require__) { | 6668 | /***/ function(module, exports, __webpack_require__) { |
6531 | 6669 | ||
6532 | /** | 6670 | /** |
@@ -6542,7 +6680,7 @@ | |||
6542 | 6680 | ||
6543 | 'use strict'; | 6681 | 'use strict'; |
6544 | 6682 | ||
6545 | var SyntheticEvent = __webpack_require__(56); | 6683 | var SyntheticEvent = __webpack_require__(55); |
6546 | 6684 | ||
6547 | /** | 6685 | /** |
6548 | * @interface Event | 6686 | * @interface Event |
@@ -6567,7 +6705,7 @@ | |||
6567 | module.exports = SyntheticCompositionEvent; | 6705 | module.exports = SyntheticCompositionEvent; |
6568 | 6706 | ||
6569 | /***/ }, | 6707 | /***/ }, |
6570 | /* 56 */ | 6708 | /* 55 */ |
6571 | /***/ function(module, exports, __webpack_require__) { | 6709 | /***/ function(module, exports, __webpack_require__) { |
6572 | 6710 | ||
6573 | /* WEBPACK VAR INJECTION */(function(process) {/** | 6711 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -6685,7 +6823,8 @@ | |||
6685 | 6823 | ||
6686 | if (event.preventDefault) { | 6824 | if (event.preventDefault) { |
6687 | event.preventDefault(); | 6825 | event.preventDefault(); |
6688 | } else { | 6826 | } else if (typeof event.returnValue !== 'unknown') { |
6827 | // eslint-disable-line valid-typeof | ||
6689 | event.returnValue = false; | 6828 | event.returnValue = false; |
6690 | } | 6829 | } |
6691 | this.isDefaultPrevented = emptyFunction.thatReturnsTrue; | 6830 | this.isDefaultPrevented = emptyFunction.thatReturnsTrue; |
@@ -6699,9 +6838,16 @@ | |||
6699 | 6838 | ||
6700 | if (event.stopPropagation) { | 6839 | if (event.stopPropagation) { |
6701 | event.stopPropagation(); | 6840 | event.stopPropagation(); |
6702 | } else { | 6841 | } else if (typeof event.cancelBubble !== 'unknown') { |
6842 | // eslint-disable-line valid-typeof | ||
6843 | // The ChangeEventPlugin registers a "propertychange" event for | ||
6844 | // IE. This event does not support bubbling or cancelling, and | ||
6845 | // any references to cancelBubble throw "Member not found". A | ||
6846 | // typeof check of "unknown" circumvents this issue (and is also | ||
6847 | // IE specific). | ||
6703 | event.cancelBubble = true; | 6848 | event.cancelBubble = true; |
6704 | } | 6849 | } |
6850 | |||
6705 | this.isPropagationStopped = emptyFunction.thatReturnsTrue; | 6851 | this.isPropagationStopped = emptyFunction.thatReturnsTrue; |
6706 | }, | 6852 | }, |
6707 | 6853 | ||
@@ -6833,7 +6979,7 @@ | |||
6833 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 6979 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
6834 | 6980 | ||
6835 | /***/ }, | 6981 | /***/ }, |
6836 | /* 57 */ | 6982 | /* 56 */ |
6837 | /***/ function(module, exports, __webpack_require__) { | 6983 | /***/ function(module, exports, __webpack_require__) { |
6838 | 6984 | ||
6839 | /** | 6985 | /** |
@@ -6849,7 +6995,7 @@ | |||
6849 | 6995 | ||
6850 | 'use strict'; | 6996 | 'use strict'; |
6851 | 6997 | ||
6852 | var SyntheticEvent = __webpack_require__(56); | 6998 | var SyntheticEvent = __webpack_require__(55); |
6853 | 6999 | ||
6854 | /** | 7000 | /** |
6855 | * @interface Event | 7001 | * @interface Event |
@@ -6875,7 +7021,7 @@ | |||
6875 | module.exports = SyntheticInputEvent; | 7021 | module.exports = SyntheticInputEvent; |
6876 | 7022 | ||
6877 | /***/ }, | 7023 | /***/ }, |
6878 | /* 58 */ | 7024 | /* 57 */ |
6879 | /***/ function(module, exports, __webpack_require__) { | 7025 | /***/ function(module, exports, __webpack_require__) { |
6880 | 7026 | ||
6881 | /** | 7027 | /** |
@@ -6891,17 +7037,17 @@ | |||
6891 | 7037 | ||
6892 | 'use strict'; | 7038 | 'use strict'; |
6893 | 7039 | ||
6894 | var EventConstants = __webpack_require__(44); | 7040 | var EventConstants = __webpack_require__(43); |
6895 | var EventPluginHub = __webpack_require__(46); | 7041 | var EventPluginHub = __webpack_require__(45); |
6896 | var EventPropagators = __webpack_require__(45); | 7042 | var EventPropagators = __webpack_require__(44); |
6897 | var ExecutionEnvironment = __webpack_require__(52); | 7043 | var ExecutionEnvironment = __webpack_require__(51); |
6898 | var ReactDOMComponentTree = __webpack_require__(39); | 7044 | var ReactDOMComponentTree = __webpack_require__(38); |
6899 | var ReactUpdates = __webpack_require__(59); | 7045 | var ReactUpdates = __webpack_require__(58); |
6900 | var SyntheticEvent = __webpack_require__(56); | 7046 | var SyntheticEvent = __webpack_require__(55); |
6901 | 7047 | ||
6902 | var getEventTarget = __webpack_require__(73); | 7048 | var getEventTarget = __webpack_require__(72); |
6903 | var isEventSupported = __webpack_require__(74); | 7049 | var isEventSupported = __webpack_require__(73); |
6904 | var isTextInputElement = __webpack_require__(75); | 7050 | var isTextInputElement = __webpack_require__(74); |
6905 | var keyOf = __webpack_require__(27); | 7051 | var keyOf = __webpack_require__(27); |
6906 | 7052 | ||
6907 | var topLevelTypes = EventConstants.topLevelTypes; | 7053 | var topLevelTypes = EventConstants.topLevelTypes; |
@@ -6935,7 +7081,7 @@ | |||
6935 | var doesChangeEventBubble = false; | 7081 | var doesChangeEventBubble = false; |
6936 | if (ExecutionEnvironment.canUseDOM) { | 7082 | if (ExecutionEnvironment.canUseDOM) { |
6937 | // See `handleChange` comment below | 7083 | // See `handleChange` comment below |
6938 | doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8); | 7084 | doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8); |
6939 | } | 7085 | } |
6940 | 7086 | ||
6941 | function manualDispatchChangeEvent(nativeEvent) { | 7087 | function manualDispatchChangeEvent(nativeEvent) { |
@@ -7001,7 +7147,7 @@ | |||
7001 | // deleting text, so we ignore its input events. | 7147 | // deleting text, so we ignore its input events. |
7002 | // IE10+ fire input events to often, such when a placeholder | 7148 | // IE10+ fire input events to often, such when a placeholder |
7003 | // changes or when an input with a placeholder is focused. | 7149 | // changes or when an input with a placeholder is focused. |
7004 | isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 11); | 7150 | isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11); |
7005 | } | 7151 | } |
7006 | 7152 | ||
7007 | /** | 7153 | /** |
@@ -7205,7 +7351,7 @@ | |||
7205 | module.exports = ChangeEventPlugin; | 7351 | module.exports = ChangeEventPlugin; |
7206 | 7352 | ||
7207 | /***/ }, | 7353 | /***/ }, |
7208 | /* 59 */ | 7354 | /* 58 */ |
7209 | /***/ function(module, exports, __webpack_require__) { | 7355 | /***/ function(module, exports, __webpack_require__) { |
7210 | 7356 | ||
7211 | /* WEBPACK VAR INJECTION */(function(process) {/** | 7357 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -7224,11 +7370,11 @@ | |||
7224 | var _prodInvariant = __webpack_require__(9), | 7370 | var _prodInvariant = __webpack_require__(9), |
7225 | _assign = __webpack_require__(6); | 7371 | _assign = __webpack_require__(6); |
7226 | 7372 | ||
7227 | var CallbackQueue = __webpack_require__(60); | 7373 | var CallbackQueue = __webpack_require__(59); |
7228 | var PooledClass = __webpack_require__(8); | 7374 | var PooledClass = __webpack_require__(8); |
7229 | var ReactFeatureFlags = __webpack_require__(61); | 7375 | var ReactFeatureFlags = __webpack_require__(60); |
7230 | var ReactReconciler = __webpack_require__(62); | 7376 | var ReactReconciler = __webpack_require__(61); |
7231 | var Transaction = __webpack_require__(72); | 7377 | var Transaction = __webpack_require__(71); |
7232 | 7378 | ||
7233 | var invariant = __webpack_require__(10); | 7379 | var invariant = __webpack_require__(10); |
7234 | 7380 | ||
@@ -7462,7 +7608,7 @@ | |||
7462 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 7608 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
7463 | 7609 | ||
7464 | /***/ }, | 7610 | /***/ }, |
7465 | /* 60 */ | 7611 | /* 59 */ |
7466 | /***/ function(module, exports, __webpack_require__) { | 7612 | /***/ function(module, exports, __webpack_require__) { |
7467 | 7613 | ||
7468 | /* WEBPACK VAR INJECTION */(function(process) {/** | 7614 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -7574,7 +7720,7 @@ | |||
7574 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 7720 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
7575 | 7721 | ||
7576 | /***/ }, | 7722 | /***/ }, |
7577 | /* 61 */ | 7723 | /* 60 */ |
7578 | /***/ function(module, exports) { | 7724 | /***/ function(module, exports) { |
7579 | 7725 | ||
7580 | /** | 7726 | /** |
@@ -7601,7 +7747,7 @@ | |||
7601 | module.exports = ReactFeatureFlags; | 7747 | module.exports = ReactFeatureFlags; |
7602 | 7748 | ||
7603 | /***/ }, | 7749 | /***/ }, |
7604 | /* 62 */ | 7750 | /* 61 */ |
7605 | /***/ function(module, exports, __webpack_require__) { | 7751 | /***/ function(module, exports, __webpack_require__) { |
7606 | 7752 | ||
7607 | /* WEBPACK VAR INJECTION */(function(process) {/** | 7753 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -7617,8 +7763,8 @@ | |||
7617 | 7763 | ||
7618 | 'use strict'; | 7764 | 'use strict'; |
7619 | 7765 | ||
7620 | var ReactRef = __webpack_require__(63); | 7766 | var ReactRef = __webpack_require__(62); |
7621 | var ReactInstrumentation = __webpack_require__(65); | 7767 | var ReactInstrumentation = __webpack_require__(64); |
7622 | 7768 | ||
7623 | var warning = __webpack_require__(13); | 7769 | var warning = __webpack_require__(13); |
7624 | 7770 | ||
@@ -7643,20 +7789,19 @@ | |||
7643 | * @final | 7789 | * @final |
7644 | * @internal | 7790 | * @internal |
7645 | */ | 7791 | */ |
7646 | mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context) { | 7792 | mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots |
7793 | ) { | ||
7647 | if (process.env.NODE_ENV !== 'production') { | 7794 | if (process.env.NODE_ENV !== 'production') { |
7648 | if (internalInstance._debugID !== 0) { | 7795 | if (internalInstance._debugID !== 0) { |
7649 | ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement); | 7796 | ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); |
7650 | ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'mountComponent'); | ||
7651 | } | 7797 | } |
7652 | } | 7798 | } |
7653 | var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context); | 7799 | var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID); |
7654 | if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { | 7800 | if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { |
7655 | transaction.getReactMountReady().enqueue(attachRefs, internalInstance); | 7801 | transaction.getReactMountReady().enqueue(attachRefs, internalInstance); |
7656 | } | 7802 | } |
7657 | if (process.env.NODE_ENV !== 'production') { | 7803 | if (process.env.NODE_ENV !== 'production') { |
7658 | if (internalInstance._debugID !== 0) { | 7804 | if (internalInstance._debugID !== 0) { |
7659 | ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'mountComponent'); | ||
7660 | ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); | 7805 | ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); |
7661 | } | 7806 | } |
7662 | } | 7807 | } |
@@ -7680,14 +7825,13 @@ | |||
7680 | unmountComponent: function (internalInstance, safely) { | 7825 | unmountComponent: function (internalInstance, safely) { |
7681 | if (process.env.NODE_ENV !== 'production') { | 7826 | if (process.env.NODE_ENV !== 'production') { |
7682 | if (internalInstance._debugID !== 0) { | 7827 | if (internalInstance._debugID !== 0) { |
7683 | ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'unmountComponent'); | 7828 | ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID); |
7684 | } | 7829 | } |
7685 | } | 7830 | } |
7686 | ReactRef.detachRefs(internalInstance, internalInstance._currentElement); | 7831 | ReactRef.detachRefs(internalInstance, internalInstance._currentElement); |
7687 | internalInstance.unmountComponent(safely); | 7832 | internalInstance.unmountComponent(safely); |
7688 | if (process.env.NODE_ENV !== 'production') { | 7833 | if (process.env.NODE_ENV !== 'production') { |
7689 | if (internalInstance._debugID !== 0) { | 7834 | if (internalInstance._debugID !== 0) { |
7690 | ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'unmountComponent'); | ||
7691 | ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); | 7835 | ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); |
7692 | } | 7836 | } |
7693 | } | 7837 | } |
@@ -7722,7 +7866,6 @@ | |||
7722 | if (process.env.NODE_ENV !== 'production') { | 7866 | if (process.env.NODE_ENV !== 'production') { |
7723 | if (internalInstance._debugID !== 0) { | 7867 | if (internalInstance._debugID !== 0) { |
7724 | ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); | 7868 | ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); |
7725 | ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'receiveComponent'); | ||
7726 | } | 7869 | } |
7727 | } | 7870 | } |
7728 | 7871 | ||
@@ -7740,7 +7883,6 @@ | |||
7740 | 7883 | ||
7741 | if (process.env.NODE_ENV !== 'production') { | 7884 | if (process.env.NODE_ENV !== 'production') { |
7742 | if (internalInstance._debugID !== 0) { | 7885 | if (internalInstance._debugID !== 0) { |
7743 | ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'receiveComponent'); | ||
7744 | ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); | 7886 | ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); |
7745 | } | 7887 | } |
7746 | } | 7888 | } |
@@ -7762,14 +7904,12 @@ | |||
7762 | } | 7904 | } |
7763 | if (process.env.NODE_ENV !== 'production') { | 7905 | if (process.env.NODE_ENV !== 'production') { |
7764 | if (internalInstance._debugID !== 0) { | 7906 | if (internalInstance._debugID !== 0) { |
7765 | ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary'); | ||
7766 | ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); | 7907 | ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); |
7767 | } | 7908 | } |
7768 | } | 7909 | } |
7769 | internalInstance.performUpdateIfNecessary(transaction); | 7910 | internalInstance.performUpdateIfNecessary(transaction); |
7770 | if (process.env.NODE_ENV !== 'production') { | 7911 | if (process.env.NODE_ENV !== 'production') { |
7771 | if (internalInstance._debugID !== 0) { | 7912 | if (internalInstance._debugID !== 0) { |
7772 | ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary'); | ||
7773 | ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); | 7913 | ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); |
7774 | } | 7914 | } |
7775 | } | 7915 | } |
@@ -7781,7 +7921,7 @@ | |||
7781 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 7921 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
7782 | 7922 | ||
7783 | /***/ }, | 7923 | /***/ }, |
7784 | /* 63 */ | 7924 | /* 62 */ |
7785 | /***/ function(module, exports, __webpack_require__) { | 7925 | /***/ function(module, exports, __webpack_require__) { |
7786 | 7926 | ||
7787 | /** | 7927 | /** |
@@ -7797,7 +7937,7 @@ | |||
7797 | 7937 | ||
7798 | 'use strict'; | 7938 | 'use strict'; |
7799 | 7939 | ||
7800 | var ReactOwner = __webpack_require__(64); | 7940 | var ReactOwner = __webpack_require__(63); |
7801 | 7941 | ||
7802 | var ReactRef = {}; | 7942 | var ReactRef = {}; |
7803 | 7943 | ||
@@ -7845,7 +7985,7 @@ | |||
7845 | var prevEmpty = prevElement === null || prevElement === false; | 7985 | var prevEmpty = prevElement === null || prevElement === false; |
7846 | var nextEmpty = nextElement === null || nextElement === false; | 7986 | var nextEmpty = nextElement === null || nextElement === false; |
7847 | 7987 | ||
7848 | return( | 7988 | return ( |
7849 | // This has a few false positives w/r/t empty components. | 7989 | // This has a few false positives w/r/t empty components. |
7850 | prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref || | 7990 | prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref || |
7851 | // If owner changes but we have an unchanged function ref, don't update refs | 7991 | // If owner changes but we have an unchanged function ref, don't update refs |
@@ -7866,7 +8006,7 @@ | |||
7866 | module.exports = ReactRef; | 8006 | module.exports = ReactRef; |
7867 | 8007 | ||
7868 | /***/ }, | 8008 | /***/ }, |
7869 | /* 64 */ | 8009 | /* 63 */ |
7870 | /***/ function(module, exports, __webpack_require__) { | 8010 | /***/ function(module, exports, __webpack_require__) { |
7871 | 8011 | ||
7872 | /* WEBPACK VAR INJECTION */(function(process) {/** | 8012 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -7966,7 +8106,7 @@ | |||
7966 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 8106 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
7967 | 8107 | ||
7968 | /***/ }, | 8108 | /***/ }, |
7969 | /* 65 */ | 8109 | /* 64 */ |
7970 | /***/ function(module, exports, __webpack_require__) { | 8110 | /***/ function(module, exports, __webpack_require__) { |
7971 | 8111 | ||
7972 | /* WEBPACK VAR INJECTION */(function(process) {/** | 8112 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -7985,7 +8125,7 @@ | |||
7985 | var debugTool = null; | 8125 | var debugTool = null; |
7986 | 8126 | ||
7987 | if (process.env.NODE_ENV !== 'production') { | 8127 | if (process.env.NODE_ENV !== 'production') { |
7988 | var ReactDebugTool = __webpack_require__(66); | 8128 | var ReactDebugTool = __webpack_require__(65); |
7989 | debugTool = ReactDebugTool; | 8129 | debugTool = ReactDebugTool; |
7990 | } | 8130 | } |
7991 | 8131 | ||
@@ -7993,7 +8133,7 @@ | |||
7993 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 8133 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
7994 | 8134 | ||
7995 | /***/ }, | 8135 | /***/ }, |
7996 | /* 66 */ | 8136 | /* 65 */ |
7997 | /***/ function(module, exports, __webpack_require__) { | 8137 | /***/ function(module, exports, __webpack_require__) { |
7998 | 8138 | ||
7999 | /* WEBPACK VAR INJECTION */(function(process) {/** | 8139 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -8009,29 +8149,35 @@ | |||
8009 | 8149 | ||
8010 | 'use strict'; | 8150 | 'use strict'; |
8011 | 8151 | ||
8012 | var ReactInvalidSetStateWarningDevTool = __webpack_require__(67); | 8152 | var ReactInvalidSetStateWarningHook = __webpack_require__(66); |
8013 | var ReactHostOperationHistoryDevtool = __webpack_require__(68); | 8153 | var ReactHostOperationHistoryHook = __webpack_require__(67); |
8014 | var ReactComponentTreeDevtool = __webpack_require__(31); | 8154 | var ReactComponentTreeHook = __webpack_require__(30); |
8015 | var ReactChildrenMutationWarningDevtool = __webpack_require__(69); | 8155 | var ReactChildrenMutationWarningHook = __webpack_require__(68); |
8016 | var ExecutionEnvironment = __webpack_require__(52); | 8156 | var ExecutionEnvironment = __webpack_require__(51); |
8017 | 8157 | ||
8018 | var performanceNow = __webpack_require__(70); | 8158 | var performanceNow = __webpack_require__(69); |
8019 | var warning = __webpack_require__(13); | 8159 | var warning = __webpack_require__(13); |
8020 | 8160 | ||
8021 | var eventHandlers = []; | 8161 | var hooks = []; |
8022 | var handlerDoesThrowForEvent = {}; | 8162 | var didHookThrowForEvent = {}; |
8023 | 8163 | ||
8024 | function emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) { | 8164 | function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) { |
8025 | eventHandlers.forEach(function (handler) { | 8165 | try { |
8026 | try { | 8166 | fn.call(context, arg1, arg2, arg3, arg4, arg5); |
8027 | if (handler[handlerFunctionName]) { | 8167 | } catch (e) { |
8028 | handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5); | 8168 | process.env.NODE_ENV !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0; |
8029 | } | 8169 | didHookThrowForEvent[event] = true; |
8030 | } catch (e) { | 8170 | } |
8031 | process.env.NODE_ENV !== 'production' ? warning(handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e + '\n' + e.stack) : void 0; | 8171 | } |
8032 | handlerDoesThrowForEvent[handlerFunctionName] = true; | 8172 | |
8173 | function emitEvent(event, arg1, arg2, arg3, arg4, arg5) { | ||
8174 | for (var i = 0; i < hooks.length; i++) { | ||
8175 | var hook = hooks[i]; | ||
8176 | var fn = hook[event]; | ||
8177 | if (fn) { | ||
8178 | callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5); | ||
8033 | } | 8179 | } |
8034 | }); | 8180 | } |
8035 | } | 8181 | } |
8036 | 8182 | ||
8037 | var isProfiling = false; | 8183 | var isProfiling = false; |
@@ -8048,21 +8194,21 @@ | |||
8048 | var lifeCycleTimerHasWarned = false; | 8194 | var lifeCycleTimerHasWarned = false; |
8049 | 8195 | ||
8050 | function clearHistory() { | 8196 | function clearHistory() { |
8051 | ReactComponentTreeDevtool.purgeUnmountedComponents(); | 8197 | ReactComponentTreeHook.purgeUnmountedComponents(); |
8052 | ReactHostOperationHistoryDevtool.clearHistory(); | 8198 | ReactHostOperationHistoryHook.clearHistory(); |
8053 | } | 8199 | } |
8054 | 8200 | ||
8055 | function getTreeSnapshot(registeredIDs) { | 8201 | function getTreeSnapshot(registeredIDs) { |
8056 | return registeredIDs.reduce(function (tree, id) { | 8202 | return registeredIDs.reduce(function (tree, id) { |
8057 | var ownerID = ReactComponentTreeDevtool.getOwnerID(id); | 8203 | var ownerID = ReactComponentTreeHook.getOwnerID(id); |
8058 | var parentID = ReactComponentTreeDevtool.getParentID(id); | 8204 | var parentID = ReactComponentTreeHook.getParentID(id); |
8059 | tree[id] = { | 8205 | tree[id] = { |
8060 | displayName: ReactComponentTreeDevtool.getDisplayName(id), | 8206 | displayName: ReactComponentTreeHook.getDisplayName(id), |
8061 | text: ReactComponentTreeDevtool.getText(id), | 8207 | text: ReactComponentTreeHook.getText(id), |
8062 | updateCount: ReactComponentTreeDevtool.getUpdateCount(id), | 8208 | updateCount: ReactComponentTreeHook.getUpdateCount(id), |
8063 | childIDs: ReactComponentTreeDevtool.getChildIDs(id), | 8209 | childIDs: ReactComponentTreeHook.getChildIDs(id), |
8064 | // Text nodes don't have owners but this is close enough. | 8210 | // Text nodes don't have owners but this is close enough. |
8065 | ownerID: ownerID || ReactComponentTreeDevtool.getOwnerID(parentID), | 8211 | ownerID: ownerID || ReactComponentTreeHook.getOwnerID(parentID), |
8066 | parentID: parentID | 8212 | parentID: parentID |
8067 | }; | 8213 | }; |
8068 | return tree; | 8214 | return tree; |
@@ -8072,7 +8218,7 @@ | |||
8072 | function resetMeasurements() { | 8218 | function resetMeasurements() { |
8073 | var previousStartTime = currentFlushStartTime; | 8219 | var previousStartTime = currentFlushStartTime; |
8074 | var previousMeasurements = currentFlushMeasurements || []; | 8220 | var previousMeasurements = currentFlushMeasurements || []; |
8075 | var previousOperations = ReactHostOperationHistoryDevtool.getHistory(); | 8221 | var previousOperations = ReactHostOperationHistoryHook.getHistory(); |
8076 | 8222 | ||
8077 | if (currentFlushNesting === 0) { | 8223 | if (currentFlushNesting === 0) { |
8078 | currentFlushStartTime = null; | 8224 | currentFlushStartTime = null; |
@@ -8082,7 +8228,7 @@ | |||
8082 | } | 8228 | } |
8083 | 8229 | ||
8084 | if (previousMeasurements.length || previousOperations.length) { | 8230 | if (previousMeasurements.length || previousOperations.length) { |
8085 | var registeredIDs = ReactComponentTreeDevtool.getRegisteredIDs(); | 8231 | var registeredIDs = ReactComponentTreeHook.getRegisteredIDs(); |
8086 | flushHistory.push({ | 8232 | flushHistory.push({ |
8087 | duration: performanceNow() - previousStartTime, | 8233 | duration: performanceNow() - previousStartTime, |
8088 | measurements: previousMeasurements || [], | 8234 | measurements: previousMeasurements || [], |
@@ -8097,7 +8243,14 @@ | |||
8097 | } | 8243 | } |
8098 | 8244 | ||
8099 | function checkDebugID(debugID) { | 8245 | function checkDebugID(debugID) { |
8100 | process.env.NODE_ENV !== 'production' ? warning(debugID, 'ReactDebugTool: debugID may not be empty.') : void 0; | 8246 | var allowRoot = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; |
8247 | |||
8248 | if (allowRoot && debugID === 0) { | ||
8249 | return; | ||
8250 | } | ||
8251 | if (!debugID) { | ||
8252 | process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0; | ||
8253 | } | ||
8101 | } | 8254 | } |
8102 | 8255 | ||
8103 | function beginLifeCycleTimer(debugID, timerType) { | 8256 | function beginLifeCycleTimer(debugID, timerType) { |
@@ -8165,13 +8318,13 @@ | |||
8165 | } | 8318 | } |
8166 | 8319 | ||
8167 | var ReactDebugTool = { | 8320 | var ReactDebugTool = { |
8168 | addDevtool: function (devtool) { | 8321 | addHook: function (hook) { |
8169 | eventHandlers.push(devtool); | 8322 | hooks.push(hook); |
8170 | }, | 8323 | }, |
8171 | removeDevtool: function (devtool) { | 8324 | removeHook: function (hook) { |
8172 | for (var i = 0; i < eventHandlers.length; i++) { | 8325 | for (var i = 0; i < hooks.length; i++) { |
8173 | if (eventHandlers[i] === devtool) { | 8326 | if (hooks[i] === hook) { |
8174 | eventHandlers.splice(i, 1); | 8327 | hooks.splice(i, 1); |
8175 | i--; | 8328 | i--; |
8176 | } | 8329 | } |
8177 | } | 8330 | } |
@@ -8187,7 +8340,7 @@ | |||
8187 | isProfiling = true; | 8340 | isProfiling = true; |
8188 | flushHistory.length = 0; | 8341 | flushHistory.length = 0; |
8189 | resetMeasurements(); | 8342 | resetMeasurements(); |
8190 | ReactDebugTool.addDevtool(ReactHostOperationHistoryDevtool); | 8343 | ReactDebugTool.addHook(ReactHostOperationHistoryHook); |
8191 | }, | 8344 | }, |
8192 | endProfiling: function () { | 8345 | endProfiling: function () { |
8193 | if (!isProfiling) { | 8346 | if (!isProfiling) { |
@@ -8196,7 +8349,7 @@ | |||
8196 | 8349 | ||
8197 | isProfiling = false; | 8350 | isProfiling = false; |
8198 | resetMeasurements(); | 8351 | resetMeasurements(); |
8199 | ReactDebugTool.removeDevtool(ReactHostOperationHistoryDevtool); | 8352 | ReactDebugTool.removeHook(ReactHostOperationHistoryHook); |
8200 | }, | 8353 | }, |
8201 | getFlushHistory: function () { | 8354 | getFlushHistory: function () { |
8202 | return flushHistory; | 8355 | return flushHistory; |
@@ -8223,20 +8376,6 @@ | |||
8223 | endLifeCycleTimer(debugID, timerType); | 8376 | endLifeCycleTimer(debugID, timerType); |
8224 | emitEvent('onEndLifeCycleTimer', debugID, timerType); | 8377 | emitEvent('onEndLifeCycleTimer', debugID, timerType); |
8225 | }, | 8378 | }, |
8226 | onBeginReconcilerTimer: function (debugID, timerType) { | ||
8227 | checkDebugID(debugID); | ||
8228 | emitEvent('onBeginReconcilerTimer', debugID, timerType); | ||
8229 | }, | ||
8230 | onEndReconcilerTimer: function (debugID, timerType) { | ||
8231 | checkDebugID(debugID); | ||
8232 | emitEvent('onEndReconcilerTimer', debugID, timerType); | ||
8233 | }, | ||
8234 | onError: function (debugID) { | ||
8235 | if (currentTimerDebugID != null) { | ||
8236 | endLifeCycleTimer(currentTimerDebugID, currentTimerType); | ||
8237 | } | ||
8238 | emitEvent('onError', debugID); | ||
8239 | }, | ||
8240 | onBeginProcessingChildContext: function () { | 8379 | onBeginProcessingChildContext: function () { |
8241 | emitEvent('onBeginProcessingChildContext'); | 8380 | emitEvent('onBeginProcessingChildContext'); |
8242 | }, | 8381 | }, |
@@ -8247,45 +8386,18 @@ | |||
8247 | checkDebugID(debugID); | 8386 | checkDebugID(debugID); |
8248 | emitEvent('onHostOperation', debugID, type, payload); | 8387 | emitEvent('onHostOperation', debugID, type, payload); |
8249 | }, | 8388 | }, |
8250 | onComponentHasMounted: function (debugID) { | ||
8251 | checkDebugID(debugID); | ||
8252 | emitEvent('onComponentHasMounted', debugID); | ||
8253 | }, | ||
8254 | onComponentHasUpdated: function (debugID) { | ||
8255 | checkDebugID(debugID); | ||
8256 | emitEvent('onComponentHasUpdated', debugID); | ||
8257 | }, | ||
8258 | onSetState: function () { | 8389 | onSetState: function () { |
8259 | emitEvent('onSetState'); | 8390 | emitEvent('onSetState'); |
8260 | }, | 8391 | }, |
8261 | onSetDisplayName: function (debugID, displayName) { | ||
8262 | checkDebugID(debugID); | ||
8263 | emitEvent('onSetDisplayName', debugID, displayName); | ||
8264 | }, | ||
8265 | onSetChildren: function (debugID, childDebugIDs) { | 8392 | onSetChildren: function (debugID, childDebugIDs) { |
8266 | checkDebugID(debugID); | 8393 | checkDebugID(debugID); |
8267 | childDebugIDs.forEach(checkDebugID); | 8394 | childDebugIDs.forEach(checkDebugID); |
8268 | emitEvent('onSetChildren', debugID, childDebugIDs); | 8395 | emitEvent('onSetChildren', debugID, childDebugIDs); |
8269 | }, | 8396 | }, |
8270 | onSetOwner: function (debugID, ownerDebugID) { | 8397 | onBeforeMountComponent: function (debugID, element, parentDebugID) { |
8271 | checkDebugID(debugID); | ||
8272 | emitEvent('onSetOwner', debugID, ownerDebugID); | ||
8273 | }, | ||
8274 | onSetParent: function (debugID, parentDebugID) { | ||
8275 | checkDebugID(debugID); | ||
8276 | emitEvent('onSetParent', debugID, parentDebugID); | ||
8277 | }, | ||
8278 | onSetText: function (debugID, text) { | ||
8279 | checkDebugID(debugID); | 8398 | checkDebugID(debugID); |
8280 | emitEvent('onSetText', debugID, text); | 8399 | checkDebugID(parentDebugID, true); |
8281 | }, | 8400 | emitEvent('onBeforeMountComponent', debugID, element, parentDebugID); |
8282 | onMountRootComponent: function (debugID) { | ||
8283 | checkDebugID(debugID); | ||
8284 | emitEvent('onMountRootComponent', debugID); | ||
8285 | }, | ||
8286 | onBeforeMountComponent: function (debugID, element) { | ||
8287 | checkDebugID(debugID); | ||
8288 | emitEvent('onBeforeMountComponent', debugID, element); | ||
8289 | }, | 8401 | }, |
8290 | onMountComponent: function (debugID) { | 8402 | onMountComponent: function (debugID) { |
8291 | checkDebugID(debugID); | 8403 | checkDebugID(debugID); |
@@ -8299,6 +8411,10 @@ | |||
8299 | checkDebugID(debugID); | 8411 | checkDebugID(debugID); |
8300 | emitEvent('onUpdateComponent', debugID); | 8412 | emitEvent('onUpdateComponent', debugID); |
8301 | }, | 8413 | }, |
8414 | onBeforeUnmountComponent: function (debugID) { | ||
8415 | checkDebugID(debugID); | ||
8416 | emitEvent('onBeforeUnmountComponent', debugID); | ||
8417 | }, | ||
8302 | onUnmountComponent: function (debugID) { | 8418 | onUnmountComponent: function (debugID) { |
8303 | checkDebugID(debugID); | 8419 | checkDebugID(debugID); |
8304 | emitEvent('onUnmountComponent', debugID); | 8420 | emitEvent('onUnmountComponent', debugID); |
@@ -8308,9 +8424,13 @@ | |||
8308 | } | 8424 | } |
8309 | }; | 8425 | }; |
8310 | 8426 | ||
8311 | ReactDebugTool.addDevtool(ReactInvalidSetStateWarningDevTool); | 8427 | // TODO remove these when RN/www gets updated |
8312 | ReactDebugTool.addDevtool(ReactComponentTreeDevtool); | 8428 | ReactDebugTool.addDevtool = ReactDebugTool.addHook; |
8313 | ReactDebugTool.addDevtool(ReactChildrenMutationWarningDevtool); | 8429 | ReactDebugTool.removeDevtool = ReactDebugTool.removeHook; |
8430 | |||
8431 | ReactDebugTool.addHook(ReactInvalidSetStateWarningHook); | ||
8432 | ReactDebugTool.addHook(ReactComponentTreeHook); | ||
8433 | ReactDebugTool.addHook(ReactChildrenMutationWarningHook); | ||
8314 | var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; | 8434 | var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; |
8315 | if (/[?&]react_perf\b/.test(url)) { | 8435 | if (/[?&]react_perf\b/.test(url)) { |
8316 | ReactDebugTool.beginProfiling(); | 8436 | ReactDebugTool.beginProfiling(); |
@@ -8320,7 +8440,7 @@ | |||
8320 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 8440 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
8321 | 8441 | ||
8322 | /***/ }, | 8442 | /***/ }, |
8323 | /* 67 */ | 8443 | /* 66 */ |
8324 | /***/ function(module, exports, __webpack_require__) { | 8444 | /***/ function(module, exports, __webpack_require__) { |
8325 | 8445 | ||
8326 | /* WEBPACK VAR INJECTION */(function(process) {/** | 8446 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -8331,7 +8451,7 @@ | |||
8331 | * LICENSE file in the root directory of this source tree. An additional grant | 8451 | * LICENSE file in the root directory of this source tree. An additional grant |
8332 | * of patent rights can be found in the PATENTS file in the same directory. | 8452 | * of patent rights can be found in the PATENTS file in the same directory. |
8333 | * | 8453 | * |
8334 | * @providesModule ReactInvalidSetStateWarningDevTool | 8454 | * @providesModule ReactInvalidSetStateWarningHook |
8335 | */ | 8455 | */ |
8336 | 8456 | ||
8337 | 'use strict'; | 8457 | 'use strict'; |
@@ -8346,7 +8466,7 @@ | |||
8346 | }; | 8466 | }; |
8347 | } | 8467 | } |
8348 | 8468 | ||
8349 | var ReactInvalidSetStateWarningDevTool = { | 8469 | var ReactInvalidSetStateWarningHook = { |
8350 | onBeginProcessingChildContext: function () { | 8470 | onBeginProcessingChildContext: function () { |
8351 | processingChildContext = true; | 8471 | processingChildContext = true; |
8352 | }, | 8472 | }, |
@@ -8358,11 +8478,11 @@ | |||
8358 | } | 8478 | } |
8359 | }; | 8479 | }; |
8360 | 8480 | ||
8361 | module.exports = ReactInvalidSetStateWarningDevTool; | 8481 | module.exports = ReactInvalidSetStateWarningHook; |
8362 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 8482 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
8363 | 8483 | ||
8364 | /***/ }, | 8484 | /***/ }, |
8365 | /* 68 */ | 8485 | /* 67 */ |
8366 | /***/ function(module, exports) { | 8486 | /***/ function(module, exports) { |
8367 | 8487 | ||
8368 | /** | 8488 | /** |
@@ -8373,14 +8493,14 @@ | |||
8373 | * LICENSE file in the root directory of this source tree. An additional grant | 8493 | * LICENSE file in the root directory of this source tree. An additional grant |
8374 | * of patent rights can be found in the PATENTS file in the same directory. | 8494 | * of patent rights can be found in the PATENTS file in the same directory. |
8375 | * | 8495 | * |
8376 | * @providesModule ReactHostOperationHistoryDevtool | 8496 | * @providesModule ReactHostOperationHistoryHook |
8377 | */ | 8497 | */ |
8378 | 8498 | ||
8379 | 'use strict'; | 8499 | 'use strict'; |
8380 | 8500 | ||
8381 | var history = []; | 8501 | var history = []; |
8382 | 8502 | ||
8383 | var ReactHostOperationHistoryDevtool = { | 8503 | var ReactHostOperationHistoryHook = { |
8384 | onHostOperation: function (debugID, type, payload) { | 8504 | onHostOperation: function (debugID, type, payload) { |
8385 | history.push({ | 8505 | history.push({ |
8386 | instanceID: debugID, | 8506 | instanceID: debugID, |
@@ -8389,7 +8509,7 @@ | |||
8389 | }); | 8509 | }); |
8390 | }, | 8510 | }, |
8391 | clearHistory: function () { | 8511 | clearHistory: function () { |
8392 | if (ReactHostOperationHistoryDevtool._preventClearing) { | 8512 | if (ReactHostOperationHistoryHook._preventClearing) { |
8393 | // Should only be used for tests. | 8513 | // Should only be used for tests. |
8394 | return; | 8514 | return; |
8395 | } | 8515 | } |
@@ -8401,10 +8521,10 @@ | |||
8401 | } | 8521 | } |
8402 | }; | 8522 | }; |
8403 | 8523 | ||
8404 | module.exports = ReactHostOperationHistoryDevtool; | 8524 | module.exports = ReactHostOperationHistoryHook; |
8405 | 8525 | ||
8406 | /***/ }, | 8526 | /***/ }, |
8407 | /* 69 */ | 8527 | /* 68 */ |
8408 | /***/ function(module, exports, __webpack_require__) { | 8528 | /***/ function(module, exports, __webpack_require__) { |
8409 | 8529 | ||
8410 | /* WEBPACK VAR INJECTION */(function(process) {/** | 8530 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -8415,17 +8535,15 @@ | |||
8415 | * LICENSE file in the root directory of this source tree. An additional grant | 8535 | * LICENSE file in the root directory of this source tree. An additional grant |
8416 | * of patent rights can be found in the PATENTS file in the same directory. | 8536 | * of patent rights can be found in the PATENTS file in the same directory. |
8417 | * | 8537 | * |
8418 | * @providesModule ReactChildrenMutationWarningDevtool | 8538 | * @providesModule ReactChildrenMutationWarningHook |
8419 | */ | 8539 | */ |
8420 | 8540 | ||
8421 | 'use strict'; | 8541 | 'use strict'; |
8422 | 8542 | ||
8423 | var ReactComponentTreeDevtool = __webpack_require__(31); | 8543 | var ReactComponentTreeHook = __webpack_require__(30); |
8424 | 8544 | ||
8425 | var warning = __webpack_require__(13); | 8545 | var warning = __webpack_require__(13); |
8426 | 8546 | ||
8427 | var elements = {}; | ||
8428 | |||
8429 | function handleElement(debugID, element) { | 8547 | function handleElement(debugID, element) { |
8430 | if (element == null) { | 8548 | if (element == null) { |
8431 | return; | 8549 | return; |
@@ -8448,31 +8566,25 @@ | |||
8448 | isMutated = true; | 8566 | isMutated = true; |
8449 | } | 8567 | } |
8450 | } | 8568 | } |
8451 | process.env.NODE_ENV !== 'production' ? warning(Array.isArray(element._shadowChildren) && !isMutated, 'Component\'s children should not be mutated.%s', ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; | 8569 | if (!Array.isArray(element._shadowChildren) || isMutated) { |
8570 | process.env.NODE_ENV !== 'production' ? warning(false, 'Component\'s children should not be mutated.%s', ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; | ||
8571 | } | ||
8452 | } | 8572 | } |
8453 | 8573 | ||
8454 | var ReactDOMUnknownPropertyDevtool = { | 8574 | var ReactChildrenMutationWarningHook = { |
8455 | onBeforeMountComponent: function (debugID, element) { | 8575 | onMountComponent: function (debugID) { |
8456 | elements[debugID] = element; | 8576 | handleElement(debugID, ReactComponentTreeHook.getElement(debugID)); |
8457 | }, | ||
8458 | onBeforeUpdateComponent: function (debugID, element) { | ||
8459 | elements[debugID] = element; | ||
8460 | }, | ||
8461 | onComponentHasMounted: function (debugID) { | ||
8462 | handleElement(debugID, elements[debugID]); | ||
8463 | delete elements[debugID]; | ||
8464 | }, | 8577 | }, |
8465 | onComponentHasUpdated: function (debugID) { | 8578 | onUpdateComponent: function (debugID) { |
8466 | handleElement(debugID, elements[debugID]); | 8579 | handleElement(debugID, ReactComponentTreeHook.getElement(debugID)); |
8467 | delete elements[debugID]; | ||
8468 | } | 8580 | } |
8469 | }; | 8581 | }; |
8470 | 8582 | ||
8471 | module.exports = ReactDOMUnknownPropertyDevtool; | 8583 | module.exports = ReactChildrenMutationWarningHook; |
8472 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 8584 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
8473 | 8585 | ||
8474 | /***/ }, | 8586 | /***/ }, |
8475 | /* 70 */ | 8587 | /* 69 */ |
8476 | /***/ function(module, exports, __webpack_require__) { | 8588 | /***/ function(module, exports, __webpack_require__) { |
8477 | 8589 | ||
8478 | 'use strict'; | 8590 | 'use strict'; |
@@ -8488,7 +8600,7 @@ | |||
8488 | * @typechecks | 8600 | * @typechecks |
8489 | */ | 8601 | */ |
8490 | 8602 | ||
8491 | var performance = __webpack_require__(71); | 8603 | var performance = __webpack_require__(70); |
8492 | 8604 | ||
8493 | var performanceNow; | 8605 | var performanceNow; |
8494 | 8606 | ||
@@ -8510,7 +8622,7 @@ | |||
8510 | module.exports = performanceNow; | 8622 | module.exports = performanceNow; |
8511 | 8623 | ||
8512 | /***/ }, | 8624 | /***/ }, |
8513 | /* 71 */ | 8625 | /* 70 */ |
8514 | /***/ function(module, exports, __webpack_require__) { | 8626 | /***/ function(module, exports, __webpack_require__) { |
8515 | 8627 | ||
8516 | /** | 8628 | /** |
@@ -8526,7 +8638,7 @@ | |||
8526 | 8638 | ||
8527 | 'use strict'; | 8639 | 'use strict'; |
8528 | 8640 | ||
8529 | var ExecutionEnvironment = __webpack_require__(52); | 8641 | var ExecutionEnvironment = __webpack_require__(51); |
8530 | 8642 | ||
8531 | var performance; | 8643 | var performance; |
8532 | 8644 | ||
@@ -8537,7 +8649,7 @@ | |||
8537 | module.exports = performance || {}; | 8649 | module.exports = performance || {}; |
8538 | 8650 | ||
8539 | /***/ }, | 8651 | /***/ }, |
8540 | /* 72 */ | 8652 | /* 71 */ |
8541 | /***/ function(module, exports, __webpack_require__) { | 8653 | /***/ function(module, exports, __webpack_require__) { |
8542 | 8654 | ||
8543 | /* WEBPACK VAR INJECTION */(function(process) {/** | 8655 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -8776,7 +8888,7 @@ | |||
8776 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 8888 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
8777 | 8889 | ||
8778 | /***/ }, | 8890 | /***/ }, |
8779 | /* 73 */ | 8891 | /* 72 */ |
8780 | /***/ function(module, exports) { | 8892 | /***/ function(module, exports) { |
8781 | 8893 | ||
8782 | /** | 8894 | /** |
@@ -8816,7 +8928,7 @@ | |||
8816 | module.exports = getEventTarget; | 8928 | module.exports = getEventTarget; |
8817 | 8929 | ||
8818 | /***/ }, | 8930 | /***/ }, |
8819 | /* 74 */ | 8931 | /* 73 */ |
8820 | /***/ function(module, exports, __webpack_require__) { | 8932 | /***/ function(module, exports, __webpack_require__) { |
8821 | 8933 | ||
8822 | /** | 8934 | /** |
@@ -8832,7 +8944,7 @@ | |||
8832 | 8944 | ||
8833 | 'use strict'; | 8945 | 'use strict'; |
8834 | 8946 | ||
8835 | var ExecutionEnvironment = __webpack_require__(52); | 8947 | var ExecutionEnvironment = __webpack_require__(51); |
8836 | 8948 | ||
8837 | var useHasFeature; | 8949 | var useHasFeature; |
8838 | if (ExecutionEnvironment.canUseDOM) { | 8950 | if (ExecutionEnvironment.canUseDOM) { |
@@ -8881,7 +8993,7 @@ | |||
8881 | module.exports = isEventSupported; | 8993 | module.exports = isEventSupported; |
8882 | 8994 | ||
8883 | /***/ }, | 8995 | /***/ }, |
8884 | /* 75 */ | 8996 | /* 74 */ |
8885 | /***/ function(module, exports) { | 8997 | /***/ function(module, exports) { |
8886 | 8998 | ||
8887 | /** | 8999 | /** |
@@ -8937,7 +9049,7 @@ | |||
8937 | module.exports = isTextInputElement; | 9049 | module.exports = isTextInputElement; |
8938 | 9050 | ||
8939 | /***/ }, | 9051 | /***/ }, |
8940 | /* 76 */ | 9052 | /* 75 */ |
8941 | /***/ function(module, exports, __webpack_require__) { | 9053 | /***/ function(module, exports, __webpack_require__) { |
8942 | 9054 | ||
8943 | /** | 9055 | /** |
@@ -8969,7 +9081,7 @@ | |||
8969 | module.exports = DefaultEventPluginOrder; | 9081 | module.exports = DefaultEventPluginOrder; |
8970 | 9082 | ||
8971 | /***/ }, | 9083 | /***/ }, |
8972 | /* 77 */ | 9084 | /* 76 */ |
8973 | /***/ function(module, exports, __webpack_require__) { | 9085 | /***/ function(module, exports, __webpack_require__) { |
8974 | 9086 | ||
8975 | /** | 9087 | /** |
@@ -8985,10 +9097,10 @@ | |||
8985 | 9097 | ||
8986 | 'use strict'; | 9098 | 'use strict'; |
8987 | 9099 | ||
8988 | var EventConstants = __webpack_require__(44); | 9100 | var EventConstants = __webpack_require__(43); |
8989 | var EventPropagators = __webpack_require__(45); | 9101 | var EventPropagators = __webpack_require__(44); |
8990 | var ReactDOMComponentTree = __webpack_require__(39); | 9102 | var ReactDOMComponentTree = __webpack_require__(38); |
8991 | var SyntheticMouseEvent = __webpack_require__(78); | 9103 | var SyntheticMouseEvent = __webpack_require__(77); |
8992 | 9104 | ||
8993 | var keyOf = __webpack_require__(27); | 9105 | var keyOf = __webpack_require__(27); |
8994 | 9106 | ||
@@ -9079,7 +9191,7 @@ | |||
9079 | module.exports = EnterLeaveEventPlugin; | 9191 | module.exports = EnterLeaveEventPlugin; |
9080 | 9192 | ||
9081 | /***/ }, | 9193 | /***/ }, |
9082 | /* 78 */ | 9194 | /* 77 */ |
9083 | /***/ function(module, exports, __webpack_require__) { | 9195 | /***/ function(module, exports, __webpack_require__) { |
9084 | 9196 | ||
9085 | /** | 9197 | /** |
@@ -9095,10 +9207,10 @@ | |||
9095 | 9207 | ||
9096 | 'use strict'; | 9208 | 'use strict'; |
9097 | 9209 | ||
9098 | var SyntheticUIEvent = __webpack_require__(79); | 9210 | var SyntheticUIEvent = __webpack_require__(78); |
9099 | var ViewportMetrics = __webpack_require__(80); | 9211 | var ViewportMetrics = __webpack_require__(79); |
9100 | 9212 | ||
9101 | var getEventModifierState = __webpack_require__(81); | 9213 | var getEventModifierState = __webpack_require__(80); |
9102 | 9214 | ||
9103 | /** | 9215 | /** |
9104 | * @interface MouseEvent | 9216 | * @interface MouseEvent |
@@ -9156,7 +9268,7 @@ | |||
9156 | module.exports = SyntheticMouseEvent; | 9268 | module.exports = SyntheticMouseEvent; |
9157 | 9269 | ||
9158 | /***/ }, | 9270 | /***/ }, |
9159 | /* 79 */ | 9271 | /* 78 */ |
9160 | /***/ function(module, exports, __webpack_require__) { | 9272 | /***/ function(module, exports, __webpack_require__) { |
9161 | 9273 | ||
9162 | /** | 9274 | /** |
@@ -9172,9 +9284,9 @@ | |||
9172 | 9284 | ||
9173 | 'use strict'; | 9285 | 'use strict'; |
9174 | 9286 | ||
9175 | var SyntheticEvent = __webpack_require__(56); | 9287 | var SyntheticEvent = __webpack_require__(55); |
9176 | 9288 | ||
9177 | var getEventTarget = __webpack_require__(73); | 9289 | var getEventTarget = __webpack_require__(72); |
9178 | 9290 | ||
9179 | /** | 9291 | /** |
9180 | * @interface UIEvent | 9292 | * @interface UIEvent |
@@ -9220,7 +9332,7 @@ | |||
9220 | module.exports = SyntheticUIEvent; | 9332 | module.exports = SyntheticUIEvent; |
9221 | 9333 | ||
9222 | /***/ }, | 9334 | /***/ }, |
9223 | /* 80 */ | 9335 | /* 79 */ |
9224 | /***/ function(module, exports) { | 9336 | /***/ function(module, exports) { |
9225 | 9337 | ||
9226 | /** | 9338 | /** |
@@ -9252,7 +9364,7 @@ | |||
9252 | module.exports = ViewportMetrics; | 9364 | module.exports = ViewportMetrics; |
9253 | 9365 | ||
9254 | /***/ }, | 9366 | /***/ }, |
9255 | /* 81 */ | 9367 | /* 80 */ |
9256 | /***/ function(module, exports) { | 9368 | /***/ function(module, exports) { |
9257 | 9369 | ||
9258 | /** | 9370 | /** |
@@ -9300,7 +9412,7 @@ | |||
9300 | module.exports = getEventModifierState; | 9412 | module.exports = getEventModifierState; |
9301 | 9413 | ||
9302 | /***/ }, | 9414 | /***/ }, |
9303 | /* 82 */ | 9415 | /* 81 */ |
9304 | /***/ function(module, exports, __webpack_require__) { | 9416 | /***/ function(module, exports, __webpack_require__) { |
9305 | 9417 | ||
9306 | /** | 9418 | /** |
@@ -9316,7 +9428,7 @@ | |||
9316 | 9428 | ||
9317 | 'use strict'; | 9429 | 'use strict'; |
9318 | 9430 | ||
9319 | var DOMProperty = __webpack_require__(40); | 9431 | var DOMProperty = __webpack_require__(39); |
9320 | 9432 | ||
9321 | var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; | 9433 | var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; |
9322 | var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; | 9434 | var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; |
@@ -9337,6 +9449,8 @@ | |||
9337 | allowFullScreen: HAS_BOOLEAN_VALUE, | 9449 | allowFullScreen: HAS_BOOLEAN_VALUE, |
9338 | allowTransparency: 0, | 9450 | allowTransparency: 0, |
9339 | alt: 0, | 9451 | alt: 0, |
9452 | // specifies target context for links with `preload` type | ||
9453 | as: 0, | ||
9340 | async: HAS_BOOLEAN_VALUE, | 9454 | async: HAS_BOOLEAN_VALUE, |
9341 | autoComplete: 0, | 9455 | autoComplete: 0, |
9342 | // autoFocus is polyfilled/normalized by AutoFocusUtils | 9456 | // autoFocus is polyfilled/normalized by AutoFocusUtils |
@@ -9417,6 +9531,7 @@ | |||
9417 | optimum: 0, | 9531 | optimum: 0, |
9418 | pattern: 0, | 9532 | pattern: 0, |
9419 | placeholder: 0, | 9533 | placeholder: 0, |
9534 | playsInline: HAS_BOOLEAN_VALUE, | ||
9420 | poster: 0, | 9535 | poster: 0, |
9421 | preload: 0, | 9536 | preload: 0, |
9422 | profile: 0, | 9537 | profile: 0, |
@@ -9514,7 +9629,7 @@ | |||
9514 | module.exports = HTMLDOMPropertyConfig; | 9629 | module.exports = HTMLDOMPropertyConfig; |
9515 | 9630 | ||
9516 | /***/ }, | 9631 | /***/ }, |
9517 | /* 83 */ | 9632 | /* 82 */ |
9518 | /***/ function(module, exports, __webpack_require__) { | 9633 | /***/ function(module, exports, __webpack_require__) { |
9519 | 9634 | ||
9520 | /** | 9635 | /** |
@@ -9530,8 +9645,8 @@ | |||
9530 | 9645 | ||
9531 | 'use strict'; | 9646 | 'use strict'; |
9532 | 9647 | ||
9533 | var DOMChildrenOperations = __webpack_require__(84); | 9648 | var DOMChildrenOperations = __webpack_require__(83); |
9534 | var ReactDOMIDOperations = __webpack_require__(96); | 9649 | var ReactDOMIDOperations = __webpack_require__(95); |
9535 | 9650 | ||
9536 | /** | 9651 | /** |
9537 | * Abstracts away all functionality of the reconciler that requires knowledge of | 9652 | * Abstracts away all functionality of the reconciler that requires knowledge of |
@@ -9542,23 +9657,14 @@ | |||
9542 | 9657 | ||
9543 | processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, | 9658 | processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, |
9544 | 9659 | ||
9545 | replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup, | 9660 | replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup |
9546 | |||
9547 | /** | ||
9548 | * If a particular environment requires that some resources be cleaned up, | ||
9549 | * specify this in the injected Mixin. In the DOM, we would likely want to | ||
9550 | * purge any cached node ID lookups. | ||
9551 | * | ||
9552 | * @private | ||
9553 | */ | ||
9554 | unmountIDFromEnvironment: function (rootNodeID) {} | ||
9555 | 9661 | ||
9556 | }; | 9662 | }; |
9557 | 9663 | ||
9558 | module.exports = ReactComponentBrowserEnvironment; | 9664 | module.exports = ReactComponentBrowserEnvironment; |
9559 | 9665 | ||
9560 | /***/ }, | 9666 | /***/ }, |
9561 | /* 84 */ | 9667 | /* 83 */ |
9562 | /***/ function(module, exports, __webpack_require__) { | 9668 | /***/ function(module, exports, __webpack_require__) { |
9563 | 9669 | ||
9564 | /* WEBPACK VAR INJECTION */(function(process) {/** | 9670 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -9574,15 +9680,15 @@ | |||
9574 | 9680 | ||
9575 | 'use strict'; | 9681 | 'use strict'; |
9576 | 9682 | ||
9577 | var DOMLazyTree = __webpack_require__(85); | 9683 | var DOMLazyTree = __webpack_require__(84); |
9578 | var Danger = __webpack_require__(91); | 9684 | var Danger = __webpack_require__(90); |
9579 | var ReactMultiChildUpdateTypes = __webpack_require__(95); | 9685 | var ReactMultiChildUpdateTypes = __webpack_require__(94); |
9580 | var ReactDOMComponentTree = __webpack_require__(39); | 9686 | var ReactDOMComponentTree = __webpack_require__(38); |
9581 | var ReactInstrumentation = __webpack_require__(65); | 9687 | var ReactInstrumentation = __webpack_require__(64); |
9582 | 9688 | ||
9583 | var createMicrosoftUnsafeLocalFunction = __webpack_require__(88); | 9689 | var createMicrosoftUnsafeLocalFunction = __webpack_require__(87); |
9584 | var setInnerHTML = __webpack_require__(87); | 9690 | var setInnerHTML = __webpack_require__(86); |
9585 | var setTextContent = __webpack_require__(89); | 9691 | var setTextContent = __webpack_require__(88); |
9586 | 9692 | ||
9587 | function getNodeAfter(parentNode, node) { | 9693 | function getNodeAfter(parentNode, node) { |
9588 | // Special case for text components, which return [open, close] comments | 9694 | // Special case for text components, which return [open, close] comments |
@@ -9758,7 +9864,7 @@ | |||
9758 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 9864 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
9759 | 9865 | ||
9760 | /***/ }, | 9866 | /***/ }, |
9761 | /* 85 */ | 9867 | /* 84 */ |
9762 | /***/ function(module, exports, __webpack_require__) { | 9868 | /***/ function(module, exports, __webpack_require__) { |
9763 | 9869 | ||
9764 | /** | 9870 | /** |
@@ -9774,11 +9880,11 @@ | |||
9774 | 9880 | ||
9775 | 'use strict'; | 9881 | 'use strict'; |
9776 | 9882 | ||
9777 | var DOMNamespaces = __webpack_require__(86); | 9883 | var DOMNamespaces = __webpack_require__(85); |
9778 | var setInnerHTML = __webpack_require__(87); | 9884 | var setInnerHTML = __webpack_require__(86); |
9779 | 9885 | ||
9780 | var createMicrosoftUnsafeLocalFunction = __webpack_require__(88); | 9886 | var createMicrosoftUnsafeLocalFunction = __webpack_require__(87); |
9781 | var setTextContent = __webpack_require__(89); | 9887 | var setTextContent = __webpack_require__(88); |
9782 | 9888 | ||
9783 | var ELEMENT_NODE_TYPE = 1; | 9889 | var ELEMENT_NODE_TYPE = 1; |
9784 | var DOCUMENT_FRAGMENT_NODE_TYPE = 11; | 9890 | var DOCUMENT_FRAGMENT_NODE_TYPE = 11; |
@@ -9881,7 +9987,7 @@ | |||
9881 | module.exports = DOMLazyTree; | 9987 | module.exports = DOMLazyTree; |
9882 | 9988 | ||
9883 | /***/ }, | 9989 | /***/ }, |
9884 | /* 86 */ | 9990 | /* 85 */ |
9885 | /***/ function(module, exports) { | 9991 | /***/ function(module, exports) { |
9886 | 9992 | ||
9887 | /** | 9993 | /** |
@@ -9906,7 +10012,7 @@ | |||
9906 | module.exports = DOMNamespaces; | 10012 | module.exports = DOMNamespaces; |
9907 | 10013 | ||
9908 | /***/ }, | 10014 | /***/ }, |
9909 | /* 87 */ | 10015 | /* 86 */ |
9910 | /***/ function(module, exports, __webpack_require__) { | 10016 | /***/ function(module, exports, __webpack_require__) { |
9911 | 10017 | ||
9912 | /** | 10018 | /** |
@@ -9922,13 +10028,13 @@ | |||
9922 | 10028 | ||
9923 | 'use strict'; | 10029 | 'use strict'; |
9924 | 10030 | ||
9925 | var ExecutionEnvironment = __webpack_require__(52); | 10031 | var ExecutionEnvironment = __webpack_require__(51); |
9926 | var DOMNamespaces = __webpack_require__(86); | 10032 | var DOMNamespaces = __webpack_require__(85); |
9927 | 10033 | ||
9928 | var WHITESPACE_TEST = /^[ \r\n\t\f]/; | 10034 | var WHITESPACE_TEST = /^[ \r\n\t\f]/; |
9929 | var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; | 10035 | var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; |
9930 | 10036 | ||
9931 | var createMicrosoftUnsafeLocalFunction = __webpack_require__(88); | 10037 | var createMicrosoftUnsafeLocalFunction = __webpack_require__(87); |
9932 | 10038 | ||
9933 | // SVG temp container for IE lacking innerHTML | 10039 | // SVG temp container for IE lacking innerHTML |
9934 | var reusableSVGContainer; | 10040 | var reusableSVGContainer; |
@@ -9948,9 +10054,9 @@ | |||
9948 | if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) { | 10054 | if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) { |
9949 | reusableSVGContainer = reusableSVGContainer || document.createElement('div'); | 10055 | reusableSVGContainer = reusableSVGContainer || document.createElement('div'); |
9950 | reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>'; | 10056 | reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>'; |
9951 | var newNodes = reusableSVGContainer.firstChild.childNodes; | 10057 | var svgNode = reusableSVGContainer.firstChild; |
9952 | for (var i = 0; i < newNodes.length; i++) { | 10058 | while (svgNode.firstChild) { |
9953 | node.appendChild(newNodes[i]); | 10059 | node.appendChild(svgNode.firstChild); |
9954 | } | 10060 | } |
9955 | } else { | 10061 | } else { |
9956 | node.innerHTML = html; | 10062 | node.innerHTML = html; |
@@ -10009,7 +10115,7 @@ | |||
10009 | module.exports = setInnerHTML; | 10115 | module.exports = setInnerHTML; |
10010 | 10116 | ||
10011 | /***/ }, | 10117 | /***/ }, |
10012 | /* 88 */ | 10118 | /* 87 */ |
10013 | /***/ function(module, exports) { | 10119 | /***/ function(module, exports) { |
10014 | 10120 | ||
10015 | /** | 10121 | /** |
@@ -10046,7 +10152,7 @@ | |||
10046 | module.exports = createMicrosoftUnsafeLocalFunction; | 10152 | module.exports = createMicrosoftUnsafeLocalFunction; |
10047 | 10153 | ||
10048 | /***/ }, | 10154 | /***/ }, |
10049 | /* 89 */ | 10155 | /* 88 */ |
10050 | /***/ function(module, exports, __webpack_require__) { | 10156 | /***/ function(module, exports, __webpack_require__) { |
10051 | 10157 | ||
10052 | /** | 10158 | /** |
@@ -10062,9 +10168,9 @@ | |||
10062 | 10168 | ||
10063 | 'use strict'; | 10169 | 'use strict'; |
10064 | 10170 | ||
10065 | var ExecutionEnvironment = __webpack_require__(52); | 10171 | var ExecutionEnvironment = __webpack_require__(51); |
10066 | var escapeTextContentForBrowser = __webpack_require__(90); | 10172 | var escapeTextContentForBrowser = __webpack_require__(89); |
10067 | var setInnerHTML = __webpack_require__(87); | 10173 | var setInnerHTML = __webpack_require__(86); |
10068 | 10174 | ||
10069 | /** | 10175 | /** |
10070 | * Set the textContent property of a node, ensuring that whitespace is preserved | 10176 | * Set the textContent property of a node, ensuring that whitespace is preserved |
@@ -10099,7 +10205,7 @@ | |||
10099 | module.exports = setTextContent; | 10205 | module.exports = setTextContent; |
10100 | 10206 | ||
10101 | /***/ }, | 10207 | /***/ }, |
10102 | /* 90 */ | 10208 | /* 89 */ |
10103 | /***/ function(module, exports) { | 10209 | /***/ function(module, exports) { |
10104 | 10210 | ||
10105 | /** | 10211 | /** |
@@ -10207,6 +10313,7 @@ | |||
10207 | } | 10313 | } |
10208 | // end code copied and modified from escape-html | 10314 | // end code copied and modified from escape-html |
10209 | 10315 | ||
10316 | |||
10210 | /** | 10317 | /** |
10211 | * Escapes text to prevent scripting attacks. | 10318 | * Escapes text to prevent scripting attacks. |
10212 | * | 10319 | * |
@@ -10226,7 +10333,7 @@ | |||
10226 | module.exports = escapeTextContentForBrowser; | 10333 | module.exports = escapeTextContentForBrowser; |
10227 | 10334 | ||
10228 | /***/ }, | 10335 | /***/ }, |
10229 | /* 91 */ | 10336 | /* 90 */ |
10230 | /***/ function(module, exports, __webpack_require__) { | 10337 | /***/ function(module, exports, __webpack_require__) { |
10231 | 10338 | ||
10232 | /* WEBPACK VAR INJECTION */(function(process) {/** | 10339 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -10244,10 +10351,10 @@ | |||
10244 | 10351 | ||
10245 | var _prodInvariant = __webpack_require__(9); | 10352 | var _prodInvariant = __webpack_require__(9); |
10246 | 10353 | ||
10247 | var DOMLazyTree = __webpack_require__(85); | 10354 | var DOMLazyTree = __webpack_require__(84); |
10248 | var ExecutionEnvironment = __webpack_require__(52); | 10355 | var ExecutionEnvironment = __webpack_require__(51); |
10249 | 10356 | ||
10250 | var createNodesFromMarkup = __webpack_require__(92); | 10357 | var createNodesFromMarkup = __webpack_require__(91); |
10251 | var emptyFunction = __webpack_require__(14); | 10358 | var emptyFunction = __webpack_require__(14); |
10252 | var invariant = __webpack_require__(10); | 10359 | var invariant = __webpack_require__(10); |
10253 | 10360 | ||
@@ -10280,7 +10387,7 @@ | |||
10280 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 10387 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
10281 | 10388 | ||
10282 | /***/ }, | 10389 | /***/ }, |
10283 | /* 92 */ | 10390 | /* 91 */ |
10284 | /***/ function(module, exports, __webpack_require__) { | 10391 | /***/ function(module, exports, __webpack_require__) { |
10285 | 10392 | ||
10286 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; | 10393 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; |
@@ -10298,10 +10405,10 @@ | |||
10298 | 10405 | ||
10299 | /*eslint-disable fb-www/unsafe-html*/ | 10406 | /*eslint-disable fb-www/unsafe-html*/ |
10300 | 10407 | ||
10301 | var ExecutionEnvironment = __webpack_require__(52); | 10408 | var ExecutionEnvironment = __webpack_require__(51); |
10302 | 10409 | ||
10303 | var createArrayFromMixed = __webpack_require__(93); | 10410 | var createArrayFromMixed = __webpack_require__(92); |
10304 | var getMarkupWrap = __webpack_require__(94); | 10411 | var getMarkupWrap = __webpack_require__(93); |
10305 | var invariant = __webpack_require__(10); | 10412 | var invariant = __webpack_require__(10); |
10306 | 10413 | ||
10307 | /** | 10414 | /** |
@@ -10369,7 +10476,7 @@ | |||
10369 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 10476 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
10370 | 10477 | ||
10371 | /***/ }, | 10478 | /***/ }, |
10372 | /* 93 */ | 10479 | /* 92 */ |
10373 | /***/ function(module, exports, __webpack_require__) { | 10480 | /***/ function(module, exports, __webpack_require__) { |
10374 | 10481 | ||
10375 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; | 10482 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; |
@@ -10445,7 +10552,7 @@ | |||
10445 | * @return {boolean} | 10552 | * @return {boolean} |
10446 | */ | 10553 | */ |
10447 | function hasArrayNature(obj) { | 10554 | function hasArrayNature(obj) { |
10448 | return( | 10555 | return ( |
10449 | // not null/false | 10556 | // not null/false |
10450 | !!obj && ( | 10557 | !!obj && ( |
10451 | // arrays are objects, NodeLists are functions in Safari | 10558 | // arrays are objects, NodeLists are functions in Safari |
@@ -10501,7 +10608,7 @@ | |||
10501 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 10608 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
10502 | 10609 | ||
10503 | /***/ }, | 10610 | /***/ }, |
10504 | /* 94 */ | 10611 | /* 93 */ |
10505 | /***/ function(module, exports, __webpack_require__) { | 10612 | /***/ function(module, exports, __webpack_require__) { |
10506 | 10613 | ||
10507 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; | 10614 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; |
@@ -10518,7 +10625,7 @@ | |||
10518 | 10625 | ||
10519 | /*eslint-disable fb-www/unsafe-html */ | 10626 | /*eslint-disable fb-www/unsafe-html */ |
10520 | 10627 | ||
10521 | var ExecutionEnvironment = __webpack_require__(52); | 10628 | var ExecutionEnvironment = __webpack_require__(51); |
10522 | 10629 | ||
10523 | var invariant = __webpack_require__(10); | 10630 | var invariant = __webpack_require__(10); |
10524 | 10631 | ||
@@ -10601,7 +10708,7 @@ | |||
10601 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 10708 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
10602 | 10709 | ||
10603 | /***/ }, | 10710 | /***/ }, |
10604 | /* 95 */ | 10711 | /* 94 */ |
10605 | /***/ function(module, exports, __webpack_require__) { | 10712 | /***/ function(module, exports, __webpack_require__) { |
10606 | 10713 | ||
10607 | /** | 10714 | /** |
@@ -10638,7 +10745,7 @@ | |||
10638 | module.exports = ReactMultiChildUpdateTypes; | 10745 | module.exports = ReactMultiChildUpdateTypes; |
10639 | 10746 | ||
10640 | /***/ }, | 10747 | /***/ }, |
10641 | /* 96 */ | 10748 | /* 95 */ |
10642 | /***/ function(module, exports, __webpack_require__) { | 10749 | /***/ function(module, exports, __webpack_require__) { |
10643 | 10750 | ||
10644 | /** | 10751 | /** |
@@ -10654,8 +10761,8 @@ | |||
10654 | 10761 | ||
10655 | 'use strict'; | 10762 | 'use strict'; |
10656 | 10763 | ||
10657 | var DOMChildrenOperations = __webpack_require__(84); | 10764 | var DOMChildrenOperations = __webpack_require__(83); |
10658 | var ReactDOMComponentTree = __webpack_require__(39); | 10765 | var ReactDOMComponentTree = __webpack_require__(38); |
10659 | 10766 | ||
10660 | /** | 10767 | /** |
10661 | * Operations used to process updates to DOM nodes. | 10768 | * Operations used to process updates to DOM nodes. |
@@ -10677,7 +10784,7 @@ | |||
10677 | module.exports = ReactDOMIDOperations; | 10784 | module.exports = ReactDOMIDOperations; |
10678 | 10785 | ||
10679 | /***/ }, | 10786 | /***/ }, |
10680 | /* 97 */ | 10787 | /* 96 */ |
10681 | /***/ function(module, exports, __webpack_require__) { | 10788 | /***/ function(module, exports, __webpack_require__) { |
10682 | 10789 | ||
10683 | /* WEBPACK VAR INJECTION */(function(process) {/** | 10790 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -10698,35 +10805,34 @@ | |||
10698 | var _prodInvariant = __webpack_require__(9), | 10805 | var _prodInvariant = __webpack_require__(9), |
10699 | _assign = __webpack_require__(6); | 10806 | _assign = __webpack_require__(6); |
10700 | 10807 | ||
10701 | var AutoFocusUtils = __webpack_require__(98); | 10808 | var AutoFocusUtils = __webpack_require__(97); |
10702 | var CSSPropertyOperations = __webpack_require__(100); | 10809 | var CSSPropertyOperations = __webpack_require__(99); |
10703 | var DOMLazyTree = __webpack_require__(85); | 10810 | var DOMLazyTree = __webpack_require__(84); |
10704 | var DOMNamespaces = __webpack_require__(86); | 10811 | var DOMNamespaces = __webpack_require__(85); |
10705 | var DOMProperty = __webpack_require__(40); | 10812 | var DOMProperty = __webpack_require__(39); |
10706 | var DOMPropertyOperations = __webpack_require__(108); | 10813 | var DOMPropertyOperations = __webpack_require__(107); |
10707 | var EventConstants = __webpack_require__(44); | 10814 | var EventConstants = __webpack_require__(43); |
10708 | var EventPluginHub = __webpack_require__(46); | 10815 | var EventPluginHub = __webpack_require__(45); |
10709 | var EventPluginRegistry = __webpack_require__(47); | 10816 | var EventPluginRegistry = __webpack_require__(46); |
10710 | var ReactBrowserEventEmitter = __webpack_require__(114); | 10817 | var ReactBrowserEventEmitter = __webpack_require__(109); |
10711 | var ReactComponentBrowserEnvironment = __webpack_require__(83); | 10818 | var ReactDOMButton = __webpack_require__(112); |
10712 | var ReactDOMButton = __webpack_require__(117); | 10819 | var ReactDOMComponentFlags = __webpack_require__(40); |
10713 | var ReactDOMComponentFlags = __webpack_require__(41); | 10820 | var ReactDOMComponentTree = __webpack_require__(38); |
10714 | var ReactDOMComponentTree = __webpack_require__(39); | 10821 | var ReactDOMInput = __webpack_require__(114); |
10715 | var ReactDOMInput = __webpack_require__(119); | 10822 | var ReactDOMOption = __webpack_require__(116); |
10716 | var ReactDOMOption = __webpack_require__(121); | 10823 | var ReactDOMSelect = __webpack_require__(117); |
10717 | var ReactDOMSelect = __webpack_require__(122); | 10824 | var ReactDOMTextarea = __webpack_require__(118); |
10718 | var ReactDOMTextarea = __webpack_require__(123); | 10825 | var ReactInstrumentation = __webpack_require__(64); |
10719 | var ReactInstrumentation = __webpack_require__(65); | 10826 | var ReactMultiChild = __webpack_require__(119); |
10720 | var ReactMultiChild = __webpack_require__(124); | 10827 | var ReactServerRenderingTransaction = __webpack_require__(131); |
10721 | var ReactServerRenderingTransaction = __webpack_require__(136); | ||
10722 | 10828 | ||
10723 | var emptyFunction = __webpack_require__(14); | 10829 | var emptyFunction = __webpack_require__(14); |
10724 | var escapeTextContentForBrowser = __webpack_require__(90); | 10830 | var escapeTextContentForBrowser = __webpack_require__(89); |
10725 | var invariant = __webpack_require__(10); | 10831 | var invariant = __webpack_require__(10); |
10726 | var isEventSupported = __webpack_require__(74); | 10832 | var isEventSupported = __webpack_require__(73); |
10727 | var keyOf = __webpack_require__(27); | 10833 | var keyOf = __webpack_require__(27); |
10728 | var shallowEqual = __webpack_require__(131); | 10834 | var shallowEqual = __webpack_require__(126); |
10729 | var validateDOMNesting = __webpack_require__(139); | 10835 | var validateDOMNesting = __webpack_require__(134); |
10730 | var warning = __webpack_require__(13); | 10836 | var warning = __webpack_require__(13); |
10731 | 10837 | ||
10732 | var Flags = ReactDOMComponentFlags; | 10838 | var Flags = ReactDOMComponentFlags; |
@@ -10878,12 +10984,13 @@ | |||
10878 | ReactDOMOption.postMountWrapper(inst); | 10984 | ReactDOMOption.postMountWrapper(inst); |
10879 | } | 10985 | } |
10880 | 10986 | ||
10881 | var setContentChildForInstrumentation = emptyFunction; | 10987 | var setAndValidateContentChildDev = emptyFunction; |
10882 | if (process.env.NODE_ENV !== 'production') { | 10988 | if (process.env.NODE_ENV !== 'production') { |
10883 | setContentChildForInstrumentation = function (content) { | 10989 | setAndValidateContentChildDev = function (content) { |
10884 | var hasExistingContent = this._contentDebugID != null; | 10990 | var hasExistingContent = this._contentDebugID != null; |
10885 | var debugID = this._debugID; | 10991 | var debugID = this._debugID; |
10886 | var contentDebugID = debugID + '#text'; | 10992 | // This ID represents the inlined child that has no backing instance: |
10993 | var contentDebugID = -debugID; | ||
10887 | 10994 | ||
10888 | if (content == null) { | 10995 | if (content == null) { |
10889 | if (hasExistingContent) { | 10996 | if (hasExistingContent) { |
@@ -10893,18 +11000,13 @@ | |||
10893 | return; | 11000 | return; |
10894 | } | 11001 | } |
10895 | 11002 | ||
11003 | validateDOMNesting(null, String(content), this, this._ancestorInfo); | ||
10896 | this._contentDebugID = contentDebugID; | 11004 | this._contentDebugID = contentDebugID; |
10897 | var text = '' + content; | ||
10898 | |||
10899 | ReactInstrumentation.debugTool.onSetDisplayName(contentDebugID, '#text'); | ||
10900 | ReactInstrumentation.debugTool.onSetParent(contentDebugID, debugID); | ||
10901 | ReactInstrumentation.debugTool.onSetText(contentDebugID, text); | ||
10902 | |||
10903 | if (hasExistingContent) { | 11005 | if (hasExistingContent) { |
10904 | ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content); | 11006 | ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content); |
10905 | ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID); | 11007 | ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID); |
10906 | } else { | 11008 | } else { |
10907 | ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content); | 11009 | ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID); |
10908 | ReactInstrumentation.debugTool.onMountComponent(contentDebugID); | 11010 | ReactInstrumentation.debugTool.onMountComponent(contentDebugID); |
10909 | ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]); | 11011 | ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]); |
10910 | } | 11012 | } |
@@ -11065,15 +11167,15 @@ | |||
11065 | this._previousStyleCopy = null; | 11167 | this._previousStyleCopy = null; |
11066 | this._hostNode = null; | 11168 | this._hostNode = null; |
11067 | this._hostParent = null; | 11169 | this._hostParent = null; |
11068 | this._rootNodeID = null; | 11170 | this._rootNodeID = 0; |
11069 | this._domID = null; | 11171 | this._domID = 0; |
11070 | this._hostContainerInfo = null; | 11172 | this._hostContainerInfo = null; |
11071 | this._wrapperState = null; | 11173 | this._wrapperState = null; |
11072 | this._topLevelWrapper = null; | 11174 | this._topLevelWrapper = null; |
11073 | this._flags = 0; | 11175 | this._flags = 0; |
11074 | if (process.env.NODE_ENV !== 'production') { | 11176 | if (process.env.NODE_ENV !== 'production') { |
11075 | this._ancestorInfo = null; | 11177 | this._ancestorInfo = null; |
11076 | setContentChildForInstrumentation.call(this, null); | 11178 | setAndValidateContentChildDev.call(this, null); |
11077 | } | 11179 | } |
11078 | } | 11180 | } |
11079 | 11181 | ||
@@ -11087,14 +11189,12 @@ | |||
11087 | * | 11189 | * |
11088 | * @internal | 11190 | * @internal |
11089 | * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction | 11191 | * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction |
11090 | * @param {?ReactDOMComponent} the containing DOM component instance | 11192 | * @param {?ReactDOMComponent} the parent component instance |
11091 | * @param {?object} info about the host container | 11193 | * @param {?object} info about the host container |
11092 | * @param {object} context | 11194 | * @param {object} context |
11093 | * @return {string} The computed markup. | 11195 | * @return {string} The computed markup. |
11094 | */ | 11196 | */ |
11095 | mountComponent: function (transaction, hostParent, hostContainerInfo, context) { | 11197 | mountComponent: function (transaction, hostParent, hostContainerInfo, context) { |
11096 | var _this = this; | ||
11097 | |||
11098 | this._rootNodeID = globalIdCounter++; | 11198 | this._rootNodeID = globalIdCounter++; |
11099 | this._domID = hostContainerInfo._idCounter++; | 11199 | this._domID = hostContainerInfo._idCounter++; |
11100 | this._hostParent = hostParent; | 11200 | this._hostParent = hostParent; |
@@ -11175,7 +11275,7 @@ | |||
11175 | if (parentInfo) { | 11275 | if (parentInfo) { |
11176 | // parentInfo should always be present except for the top-level | 11276 | // parentInfo should always be present except for the top-level |
11177 | // component when server rendering | 11277 | // component when server rendering |
11178 | validateDOMNesting(this._tag, this, parentInfo); | 11278 | validateDOMNesting(this._tag, null, this, parentInfo); |
11179 | } | 11279 | } |
11180 | this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this); | 11280 | this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this); |
11181 | } | 11281 | } |
@@ -11250,15 +11350,6 @@ | |||
11250 | break; | 11350 | break; |
11251 | } | 11351 | } |
11252 | 11352 | ||
11253 | if (process.env.NODE_ENV !== 'production') { | ||
11254 | if (this._debugID) { | ||
11255 | var callback = function () { | ||
11256 | return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID); | ||
11257 | }; | ||
11258 | transaction.getReactMountReady().enqueue(callback, this); | ||
11259 | } | ||
11260 | } | ||
11261 | |||
11262 | return mountImage; | 11353 | return mountImage; |
11263 | }, | 11354 | }, |
11264 | 11355 | ||
@@ -11353,7 +11444,7 @@ | |||
11353 | // TODO: Validate that text is allowed as a child of this node | 11444 | // TODO: Validate that text is allowed as a child of this node |
11354 | ret = escapeTextContentForBrowser(contentToUse); | 11445 | ret = escapeTextContentForBrowser(contentToUse); |
11355 | if (process.env.NODE_ENV !== 'production') { | 11446 | if (process.env.NODE_ENV !== 'production') { |
11356 | setContentChildForInstrumentation.call(this, contentToUse); | 11447 | setAndValidateContentChildDev.call(this, contentToUse); |
11357 | } | 11448 | } |
11358 | } else if (childrenToUse != null) { | 11449 | } else if (childrenToUse != null) { |
11359 | var mountImages = this.mountChildren(childrenToUse, transaction, context); | 11450 | var mountImages = this.mountChildren(childrenToUse, transaction, context); |
@@ -11390,7 +11481,7 @@ | |||
11390 | if (contentToUse != null) { | 11481 | if (contentToUse != null) { |
11391 | // TODO: Validate that text is allowed as a child of this node | 11482 | // TODO: Validate that text is allowed as a child of this node |
11392 | if (process.env.NODE_ENV !== 'production') { | 11483 | if (process.env.NODE_ENV !== 'production') { |
11393 | setContentChildForInstrumentation.call(this, contentToUse); | 11484 | setAndValidateContentChildDev.call(this, contentToUse); |
11394 | } | 11485 | } |
11395 | DOMLazyTree.queueText(lazyTree, contentToUse); | 11486 | DOMLazyTree.queueText(lazyTree, contentToUse); |
11396 | } else if (childrenToUse != null) { | 11487 | } else if (childrenToUse != null) { |
@@ -11427,8 +11518,6 @@ | |||
11427 | * @overridable | 11518 | * @overridable |
11428 | */ | 11519 | */ |
11429 | updateComponent: function (transaction, prevElement, nextElement, context) { | 11520 | updateComponent: function (transaction, prevElement, nextElement, context) { |
11430 | var _this2 = this; | ||
11431 | |||
11432 | var lastProps = prevElement.props; | 11521 | var lastProps = prevElement.props; |
11433 | var nextProps = this._currentElement.props; | 11522 | var nextProps = this._currentElement.props; |
11434 | 11523 | ||
@@ -11438,7 +11527,6 @@ | |||
11438 | nextProps = ReactDOMButton.getHostProps(this, nextProps); | 11527 | nextProps = ReactDOMButton.getHostProps(this, nextProps); |
11439 | break; | 11528 | break; |
11440 | case 'input': | 11529 | case 'input': |
11441 | ReactDOMInput.updateWrapper(this); | ||
11442 | lastProps = ReactDOMInput.getHostProps(this, lastProps); | 11530 | lastProps = ReactDOMInput.getHostProps(this, lastProps); |
11443 | nextProps = ReactDOMInput.getHostProps(this, nextProps); | 11531 | nextProps = ReactDOMInput.getHostProps(this, nextProps); |
11444 | break; | 11532 | break; |
@@ -11451,7 +11539,6 @@ | |||
11451 | nextProps = ReactDOMSelect.getHostProps(this, nextProps); | 11539 | nextProps = ReactDOMSelect.getHostProps(this, nextProps); |
11452 | break; | 11540 | break; |
11453 | case 'textarea': | 11541 | case 'textarea': |
11454 | ReactDOMTextarea.updateWrapper(this); | ||
11455 | lastProps = ReactDOMTextarea.getHostProps(this, lastProps); | 11542 | lastProps = ReactDOMTextarea.getHostProps(this, lastProps); |
11456 | nextProps = ReactDOMTextarea.getHostProps(this, nextProps); | 11543 | nextProps = ReactDOMTextarea.getHostProps(this, nextProps); |
11457 | break; | 11544 | break; |
@@ -11461,19 +11548,21 @@ | |||
11461 | this._updateDOMProperties(lastProps, nextProps, transaction); | 11548 | this._updateDOMProperties(lastProps, nextProps, transaction); |
11462 | this._updateDOMChildren(lastProps, nextProps, transaction, context); | 11549 | this._updateDOMChildren(lastProps, nextProps, transaction, context); |
11463 | 11550 | ||
11464 | if (this._tag === 'select') { | 11551 | switch (this._tag) { |
11465 | // <select> value update needs to occur after <option> children | 11552 | case 'input': |
11466 | // reconciliation | 11553 | // Update the wrapper around inputs *after* updating props. This has to |
11467 | transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); | 11554 | // happen after `_updateDOMProperties`. Otherwise HTML5 input validations |
11468 | } | 11555 | // raise warnings and prevent the new value from being assigned. |
11469 | 11556 | ReactDOMInput.updateWrapper(this); | |
11470 | if (process.env.NODE_ENV !== 'production') { | 11557 | break; |
11471 | if (this._debugID) { | 11558 | case 'textarea': |
11472 | var callback = function () { | 11559 | ReactDOMTextarea.updateWrapper(this); |
11473 | return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID); | 11560 | break; |
11474 | }; | 11561 | case 'select': |
11475 | transaction.getReactMountReady().enqueue(callback, this); | 11562 | // <select> value update needs to occur after <option> children |
11476 | } | 11563 | // reconciliation |
11564 | transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); | ||
11565 | break; | ||
11477 | } | 11566 | } |
11478 | }, | 11567 | }, |
11479 | 11568 | ||
@@ -11624,7 +11713,7 @@ | |||
11624 | if (lastContent !== nextContent) { | 11713 | if (lastContent !== nextContent) { |
11625 | this.updateTextContent('' + nextContent); | 11714 | this.updateTextContent('' + nextContent); |
11626 | if (process.env.NODE_ENV !== 'production') { | 11715 | if (process.env.NODE_ENV !== 'production') { |
11627 | setContentChildForInstrumentation.call(this, nextContent); | 11716 | setAndValidateContentChildDev.call(this, nextContent); |
11628 | } | 11717 | } |
11629 | } | 11718 | } |
11630 | } else if (nextHtml != null) { | 11719 | } else if (nextHtml != null) { |
@@ -11636,7 +11725,7 @@ | |||
11636 | } | 11725 | } |
11637 | } else if (nextChildren != null) { | 11726 | } else if (nextChildren != null) { |
11638 | if (process.env.NODE_ENV !== 'production') { | 11727 | if (process.env.NODE_ENV !== 'production') { |
11639 | setContentChildForInstrumentation.call(this, null); | 11728 | setAndValidateContentChildDev.call(this, null); |
11640 | } | 11729 | } |
11641 | 11730 | ||
11642 | this.updateChildren(nextChildren, transaction, context); | 11731 | this.updateChildren(nextChildren, transaction, context); |
@@ -11686,13 +11775,12 @@ | |||
11686 | this.unmountChildren(safely); | 11775 | this.unmountChildren(safely); |
11687 | ReactDOMComponentTree.uncacheNode(this); | 11776 | ReactDOMComponentTree.uncacheNode(this); |
11688 | EventPluginHub.deleteAllListeners(this); | 11777 | EventPluginHub.deleteAllListeners(this); |
11689 | ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID); | 11778 | this._rootNodeID = 0; |
11690 | this._rootNodeID = null; | 11779 | this._domID = 0; |
11691 | this._domID = null; | ||
11692 | this._wrapperState = null; | 11780 | this._wrapperState = null; |
11693 | 11781 | ||
11694 | if (process.env.NODE_ENV !== 'production') { | 11782 | if (process.env.NODE_ENV !== 'production') { |
11695 | setContentChildForInstrumentation.call(this, null); | 11783 | setAndValidateContentChildDev.call(this, null); |
11696 | } | 11784 | } |
11697 | }, | 11785 | }, |
11698 | 11786 | ||
@@ -11708,7 +11796,7 @@ | |||
11708 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 11796 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
11709 | 11797 | ||
11710 | /***/ }, | 11798 | /***/ }, |
11711 | /* 98 */ | 11799 | /* 97 */ |
11712 | /***/ function(module, exports, __webpack_require__) { | 11800 | /***/ function(module, exports, __webpack_require__) { |
11713 | 11801 | ||
11714 | /** | 11802 | /** |
@@ -11724,9 +11812,9 @@ | |||
11724 | 11812 | ||
11725 | 'use strict'; | 11813 | 'use strict'; |
11726 | 11814 | ||
11727 | var ReactDOMComponentTree = __webpack_require__(39); | 11815 | var ReactDOMComponentTree = __webpack_require__(38); |
11728 | 11816 | ||
11729 | var focusNode = __webpack_require__(99); | 11817 | var focusNode = __webpack_require__(98); |
11730 | 11818 | ||
11731 | var AutoFocusUtils = { | 11819 | var AutoFocusUtils = { |
11732 | focusDOMComponent: function () { | 11820 | focusDOMComponent: function () { |
@@ -11737,7 +11825,7 @@ | |||
11737 | module.exports = AutoFocusUtils; | 11825 | module.exports = AutoFocusUtils; |
11738 | 11826 | ||
11739 | /***/ }, | 11827 | /***/ }, |
11740 | /* 99 */ | 11828 | /* 98 */ |
11741 | /***/ function(module, exports) { | 11829 | /***/ function(module, exports) { |
11742 | 11830 | ||
11743 | /** | 11831 | /** |
@@ -11768,7 +11856,7 @@ | |||
11768 | module.exports = focusNode; | 11856 | module.exports = focusNode; |
11769 | 11857 | ||
11770 | /***/ }, | 11858 | /***/ }, |
11771 | /* 100 */ | 11859 | /* 99 */ |
11772 | /***/ function(module, exports, __webpack_require__) { | 11860 | /***/ function(module, exports, __webpack_require__) { |
11773 | 11861 | ||
11774 | /* WEBPACK VAR INJECTION */(function(process) {/** | 11862 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -11784,14 +11872,14 @@ | |||
11784 | 11872 | ||
11785 | 'use strict'; | 11873 | 'use strict'; |
11786 | 11874 | ||
11787 | var CSSProperty = __webpack_require__(101); | 11875 | var CSSProperty = __webpack_require__(100); |
11788 | var ExecutionEnvironment = __webpack_require__(52); | 11876 | var ExecutionEnvironment = __webpack_require__(51); |
11789 | var ReactInstrumentation = __webpack_require__(65); | 11877 | var ReactInstrumentation = __webpack_require__(64); |
11790 | 11878 | ||
11791 | var camelizeStyleName = __webpack_require__(102); | 11879 | var camelizeStyleName = __webpack_require__(101); |
11792 | var dangerousStyleValue = __webpack_require__(104); | 11880 | var dangerousStyleValue = __webpack_require__(103); |
11793 | var hyphenateStyleName = __webpack_require__(105); | 11881 | var hyphenateStyleName = __webpack_require__(104); |
11794 | var memoizeStringOnly = __webpack_require__(107); | 11882 | var memoizeStringOnly = __webpack_require__(106); |
11795 | var warning = __webpack_require__(13); | 11883 | var warning = __webpack_require__(13); |
11796 | 11884 | ||
11797 | var processStyleName = memoizeStringOnly(function (styleName) { | 11885 | var processStyleName = memoizeStringOnly(function (styleName) { |
@@ -11979,7 +12067,7 @@ | |||
11979 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 12067 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
11980 | 12068 | ||
11981 | /***/ }, | 12069 | /***/ }, |
11982 | /* 101 */ | 12070 | /* 100 */ |
11983 | /***/ function(module, exports) { | 12071 | /***/ function(module, exports) { |
11984 | 12072 | ||
11985 | /** | 12073 | /** |
@@ -12132,7 +12220,7 @@ | |||
12132 | module.exports = CSSProperty; | 12220 | module.exports = CSSProperty; |
12133 | 12221 | ||
12134 | /***/ }, | 12222 | /***/ }, |
12135 | /* 102 */ | 12223 | /* 101 */ |
12136 | /***/ function(module, exports, __webpack_require__) { | 12224 | /***/ function(module, exports, __webpack_require__) { |
12137 | 12225 | ||
12138 | /** | 12226 | /** |
@@ -12148,7 +12236,7 @@ | |||
12148 | 12236 | ||
12149 | 'use strict'; | 12237 | 'use strict'; |
12150 | 12238 | ||
12151 | var camelize = __webpack_require__(103); | 12239 | var camelize = __webpack_require__(102); |
12152 | 12240 | ||
12153 | var msPattern = /^-ms-/; | 12241 | var msPattern = /^-ms-/; |
12154 | 12242 | ||
@@ -12176,7 +12264,7 @@ | |||
12176 | module.exports = camelizeStyleName; | 12264 | module.exports = camelizeStyleName; |
12177 | 12265 | ||
12178 | /***/ }, | 12266 | /***/ }, |
12179 | /* 103 */ | 12267 | /* 102 */ |
12180 | /***/ function(module, exports) { | 12268 | /***/ function(module, exports) { |
12181 | 12269 | ||
12182 | "use strict"; | 12270 | "use strict"; |
@@ -12212,7 +12300,7 @@ | |||
12212 | module.exports = camelize; | 12300 | module.exports = camelize; |
12213 | 12301 | ||
12214 | /***/ }, | 12302 | /***/ }, |
12215 | /* 104 */ | 12303 | /* 103 */ |
12216 | /***/ function(module, exports, __webpack_require__) { | 12304 | /***/ function(module, exports, __webpack_require__) { |
12217 | 12305 | ||
12218 | /* WEBPACK VAR INJECTION */(function(process) {/** | 12306 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -12228,7 +12316,7 @@ | |||
12228 | 12316 | ||
12229 | 'use strict'; | 12317 | 'use strict'; |
12230 | 12318 | ||
12231 | var CSSProperty = __webpack_require__(101); | 12319 | var CSSProperty = __webpack_require__(100); |
12232 | var warning = __webpack_require__(13); | 12320 | var warning = __webpack_require__(13); |
12233 | 12321 | ||
12234 | var isUnitlessNumber = CSSProperty.isUnitlessNumber; | 12322 | var isUnitlessNumber = CSSProperty.isUnitlessNumber; |
@@ -12297,7 +12385,7 @@ | |||
12297 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 12385 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
12298 | 12386 | ||
12299 | /***/ }, | 12387 | /***/ }, |
12300 | /* 105 */ | 12388 | /* 104 */ |
12301 | /***/ function(module, exports, __webpack_require__) { | 12389 | /***/ function(module, exports, __webpack_require__) { |
12302 | 12390 | ||
12303 | /** | 12391 | /** |
@@ -12313,7 +12401,7 @@ | |||
12313 | 12401 | ||
12314 | 'use strict'; | 12402 | 'use strict'; |
12315 | 12403 | ||
12316 | var hyphenate = __webpack_require__(106); | 12404 | var hyphenate = __webpack_require__(105); |
12317 | 12405 | ||
12318 | var msPattern = /^ms-/; | 12406 | var msPattern = /^ms-/; |
12319 | 12407 | ||
@@ -12340,7 +12428,7 @@ | |||
12340 | module.exports = hyphenateStyleName; | 12428 | module.exports = hyphenateStyleName; |
12341 | 12429 | ||
12342 | /***/ }, | 12430 | /***/ }, |
12343 | /* 106 */ | 12431 | /* 105 */ |
12344 | /***/ function(module, exports) { | 12432 | /***/ function(module, exports) { |
12345 | 12433 | ||
12346 | 'use strict'; | 12434 | 'use strict'; |
@@ -12377,7 +12465,7 @@ | |||
12377 | module.exports = hyphenate; | 12465 | module.exports = hyphenate; |
12378 | 12466 | ||
12379 | /***/ }, | 12467 | /***/ }, |
12380 | /* 107 */ | 12468 | /* 106 */ |
12381 | /***/ function(module, exports) { | 12469 | /***/ function(module, exports) { |
12382 | 12470 | ||
12383 | /** | 12471 | /** |
@@ -12411,7 +12499,7 @@ | |||
12411 | module.exports = memoizeStringOnly; | 12499 | module.exports = memoizeStringOnly; |
12412 | 12500 | ||
12413 | /***/ }, | 12501 | /***/ }, |
12414 | /* 108 */ | 12502 | /* 107 */ |
12415 | /***/ function(module, exports, __webpack_require__) { | 12503 | /***/ function(module, exports, __webpack_require__) { |
12416 | 12504 | ||
12417 | /* WEBPACK VAR INJECTION */(function(process) {/** | 12505 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -12427,12 +12515,11 @@ | |||
12427 | 12515 | ||
12428 | 'use strict'; | 12516 | 'use strict'; |
12429 | 12517 | ||
12430 | var DOMProperty = __webpack_require__(40); | 12518 | var DOMProperty = __webpack_require__(39); |
12431 | var ReactDOMComponentTree = __webpack_require__(39); | 12519 | var ReactDOMComponentTree = __webpack_require__(38); |
12432 | var ReactDOMInstrumentation = __webpack_require__(109); | 12520 | var ReactInstrumentation = __webpack_require__(64); |
12433 | var ReactInstrumentation = __webpack_require__(65); | ||
12434 | 12521 | ||
12435 | var quoteAttributeValueForBrowser = __webpack_require__(113); | 12522 | var quoteAttributeValueForBrowser = __webpack_require__(108); |
12436 | var warning = __webpack_require__(13); | 12523 | var warning = __webpack_require__(13); |
12437 | 12524 | ||
12438 | var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); | 12525 | var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); |
@@ -12494,9 +12581,6 @@ | |||
12494 | * @return {?string} Markup string, or null if the property was invalid. | 12581 | * @return {?string} Markup string, or null if the property was invalid. |
12495 | */ | 12582 | */ |
12496 | createMarkupForProperty: function (name, value) { | 12583 | createMarkupForProperty: function (name, value) { |
12497 | if (process.env.NODE_ENV !== 'production') { | ||
12498 | ReactDOMInstrumentation.debugTool.onCreateMarkupForProperty(name, value); | ||
12499 | } | ||
12500 | var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; | 12584 | var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; |
12501 | if (propertyInfo) { | 12585 | if (propertyInfo) { |
12502 | if (shouldIgnoreValue(propertyInfo, value)) { | 12586 | if (shouldIgnoreValue(propertyInfo, value)) { |
@@ -12569,7 +12653,6 @@ | |||
12569 | } | 12653 | } |
12570 | 12654 | ||
12571 | if (process.env.NODE_ENV !== 'production') { | 12655 | if (process.env.NODE_ENV !== 'production') { |
12572 | ReactDOMInstrumentation.debugTool.onSetValueForProperty(node, name, value); | ||
12573 | var payload = {}; | 12656 | var payload = {}; |
12574 | payload[name] = value; | 12657 | payload[name] = value; |
12575 | ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload); | 12658 | ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload); |
@@ -12602,7 +12685,6 @@ | |||
12602 | deleteValueForAttribute: function (node, name) { | 12685 | deleteValueForAttribute: function (node, name) { |
12603 | node.removeAttribute(name); | 12686 | node.removeAttribute(name); |
12604 | if (process.env.NODE_ENV !== 'production') { | 12687 | if (process.env.NODE_ENV !== 'production') { |
12605 | ReactDOMInstrumentation.debugTool.onDeleteValueForProperty(node, name); | ||
12606 | ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name); | 12688 | ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name); |
12607 | } | 12689 | } |
12608 | }, | 12690 | }, |
@@ -12634,7 +12716,6 @@ | |||
12634 | } | 12716 | } |
12635 | 12717 | ||
12636 | if (process.env.NODE_ENV !== 'production') { | 12718 | if (process.env.NODE_ENV !== 'production') { |
12637 | ReactDOMInstrumentation.debugTool.onDeleteValueForProperty(node, name); | ||
12638 | ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name); | 12719 | ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name); |
12639 | } | 12720 | } |
12640 | } | 12721 | } |
@@ -12645,274 +12726,7 @@ | |||
12645 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 12726 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
12646 | 12727 | ||
12647 | /***/ }, | 12728 | /***/ }, |
12648 | /* 109 */ | 12729 | /* 108 */ |
12649 | /***/ function(module, exports, __webpack_require__) { | ||
12650 | |||
12651 | /* WEBPACK VAR INJECTION */(function(process) {/** | ||
12652 | * Copyright 2013-present, Facebook, Inc. | ||
12653 | * All rights reserved. | ||
12654 | * | ||
12655 | * This source code is licensed under the BSD-style license found in the | ||
12656 | * LICENSE file in the root directory of this source tree. An additional grant | ||
12657 | * of patent rights can be found in the PATENTS file in the same directory. | ||
12658 | * | ||
12659 | * @providesModule ReactDOMInstrumentation | ||
12660 | */ | ||
12661 | |||
12662 | 'use strict'; | ||
12663 | |||
12664 | var debugTool = null; | ||
12665 | |||
12666 | if (process.env.NODE_ENV !== 'production') { | ||
12667 | var ReactDOMDebugTool = __webpack_require__(110); | ||
12668 | debugTool = ReactDOMDebugTool; | ||
12669 | } | ||
12670 | |||
12671 | module.exports = { debugTool: debugTool }; | ||
12672 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
12673 | |||
12674 | /***/ }, | ||
12675 | /* 110 */ | ||
12676 | /***/ function(module, exports, __webpack_require__) { | ||
12677 | |||
12678 | /* WEBPACK VAR INJECTION */(function(process) {/** | ||
12679 | * Copyright 2013-present, Facebook, Inc. | ||
12680 | * All rights reserved. | ||
12681 | * | ||
12682 | * This source code is licensed under the BSD-style license found in the | ||
12683 | * LICENSE file in the root directory of this source tree. An additional grant | ||
12684 | * of patent rights can be found in the PATENTS file in the same directory. | ||
12685 | * | ||
12686 | * @providesModule ReactDOMDebugTool | ||
12687 | */ | ||
12688 | |||
12689 | 'use strict'; | ||
12690 | |||
12691 | var ReactDOMNullInputValuePropDevtool = __webpack_require__(111); | ||
12692 | var ReactDOMUnknownPropertyDevtool = __webpack_require__(112); | ||
12693 | var ReactDebugTool = __webpack_require__(66); | ||
12694 | |||
12695 | var warning = __webpack_require__(13); | ||
12696 | |||
12697 | var eventHandlers = []; | ||
12698 | var handlerDoesThrowForEvent = {}; | ||
12699 | |||
12700 | function emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) { | ||
12701 | eventHandlers.forEach(function (handler) { | ||
12702 | try { | ||
12703 | if (handler[handlerFunctionName]) { | ||
12704 | handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5); | ||
12705 | } | ||
12706 | } catch (e) { | ||
12707 | process.env.NODE_ENV !== 'production' ? warning(handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e + '\n' + e.stack) : void 0; | ||
12708 | handlerDoesThrowForEvent[handlerFunctionName] = true; | ||
12709 | } | ||
12710 | }); | ||
12711 | } | ||
12712 | |||
12713 | var ReactDOMDebugTool = { | ||
12714 | addDevtool: function (devtool) { | ||
12715 | ReactDebugTool.addDevtool(devtool); | ||
12716 | eventHandlers.push(devtool); | ||
12717 | }, | ||
12718 | removeDevtool: function (devtool) { | ||
12719 | ReactDebugTool.removeDevtool(devtool); | ||
12720 | for (var i = 0; i < eventHandlers.length; i++) { | ||
12721 | if (eventHandlers[i] === devtool) { | ||
12722 | eventHandlers.splice(i, 1); | ||
12723 | i--; | ||
12724 | } | ||
12725 | } | ||
12726 | }, | ||
12727 | onCreateMarkupForProperty: function (name, value) { | ||
12728 | emitEvent('onCreateMarkupForProperty', name, value); | ||
12729 | }, | ||
12730 | onSetValueForProperty: function (node, name, value) { | ||
12731 | emitEvent('onSetValueForProperty', node, name, value); | ||
12732 | }, | ||
12733 | onDeleteValueForProperty: function (node, name) { | ||
12734 | emitEvent('onDeleteValueForProperty', node, name); | ||
12735 | }, | ||
12736 | onTestEvent: function () { | ||
12737 | emitEvent('onTestEvent'); | ||
12738 | } | ||
12739 | }; | ||
12740 | |||
12741 | ReactDOMDebugTool.addDevtool(ReactDOMUnknownPropertyDevtool); | ||
12742 | ReactDOMDebugTool.addDevtool(ReactDOMNullInputValuePropDevtool); | ||
12743 | |||
12744 | module.exports = ReactDOMDebugTool; | ||
12745 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
12746 | |||
12747 | /***/ }, | ||
12748 | /* 111 */ | ||
12749 | /***/ function(module, exports, __webpack_require__) { | ||
12750 | |||
12751 | /* WEBPACK VAR INJECTION */(function(process) {/** | ||
12752 | * Copyright 2013-present, Facebook, Inc. | ||
12753 | * All rights reserved. | ||
12754 | * | ||
12755 | * This source code is licensed under the BSD-style license found in the | ||
12756 | * LICENSE file in the root directory of this source tree. An additional grant | ||
12757 | * of patent rights can be found in the PATENTS file in the same directory. | ||
12758 | * | ||
12759 | * @providesModule ReactDOMNullInputValuePropDevtool | ||
12760 | */ | ||
12761 | |||
12762 | 'use strict'; | ||
12763 | |||
12764 | var ReactComponentTreeDevtool = __webpack_require__(31); | ||
12765 | |||
12766 | var warning = __webpack_require__(13); | ||
12767 | |||
12768 | var didWarnValueNull = false; | ||
12769 | |||
12770 | function handleElement(debugID, element) { | ||
12771 | if (element == null) { | ||
12772 | return; | ||
12773 | } | ||
12774 | if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') { | ||
12775 | return; | ||
12776 | } | ||
12777 | if (element.props != null && element.props.value === null && !didWarnValueNull) { | ||
12778 | process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; | ||
12779 | |||
12780 | didWarnValueNull = true; | ||
12781 | } | ||
12782 | } | ||
12783 | |||
12784 | var ReactDOMUnknownPropertyDevtool = { | ||
12785 | onBeforeMountComponent: function (debugID, element) { | ||
12786 | handleElement(debugID, element); | ||
12787 | }, | ||
12788 | onBeforeUpdateComponent: function (debugID, element) { | ||
12789 | handleElement(debugID, element); | ||
12790 | } | ||
12791 | }; | ||
12792 | |||
12793 | module.exports = ReactDOMUnknownPropertyDevtool; | ||
12794 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
12795 | |||
12796 | /***/ }, | ||
12797 | /* 112 */ | ||
12798 | /***/ function(module, exports, __webpack_require__) { | ||
12799 | |||
12800 | /* WEBPACK VAR INJECTION */(function(process) {/** | ||
12801 | * Copyright 2013-present, Facebook, Inc. | ||
12802 | * All rights reserved. | ||
12803 | * | ||
12804 | * This source code is licensed under the BSD-style license found in the | ||
12805 | * LICENSE file in the root directory of this source tree. An additional grant | ||
12806 | * of patent rights can be found in the PATENTS file in the same directory. | ||
12807 | * | ||
12808 | * @providesModule ReactDOMUnknownPropertyDevtool | ||
12809 | */ | ||
12810 | |||
12811 | 'use strict'; | ||
12812 | |||
12813 | var DOMProperty = __webpack_require__(40); | ||
12814 | var EventPluginRegistry = __webpack_require__(47); | ||
12815 | var ReactComponentTreeDevtool = __webpack_require__(31); | ||
12816 | |||
12817 | var warning = __webpack_require__(13); | ||
12818 | |||
12819 | if (process.env.NODE_ENV !== 'production') { | ||
12820 | var reactProps = { | ||
12821 | children: true, | ||
12822 | dangerouslySetInnerHTML: true, | ||
12823 | key: true, | ||
12824 | ref: true, | ||
12825 | |||
12826 | autoFocus: true, | ||
12827 | defaultValue: true, | ||
12828 | valueLink: true, | ||
12829 | defaultChecked: true, | ||
12830 | checkedLink: true, | ||
12831 | innerHTML: true, | ||
12832 | suppressContentEditableWarning: true, | ||
12833 | onFocusIn: true, | ||
12834 | onFocusOut: true | ||
12835 | }; | ||
12836 | var warnedProperties = {}; | ||
12837 | |||
12838 | var validateProperty = function (tagName, name, debugID) { | ||
12839 | if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) { | ||
12840 | return true; | ||
12841 | } | ||
12842 | if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { | ||
12843 | return true; | ||
12844 | } | ||
12845 | if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) { | ||
12846 | return true; | ||
12847 | } | ||
12848 | warnedProperties[name] = true; | ||
12849 | var lowerCasedName = name.toLowerCase(); | ||
12850 | |||
12851 | // data-* attributes should be lowercase; suggest the lowercase version | ||
12852 | var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; | ||
12853 | |||
12854 | var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null; | ||
12855 | |||
12856 | if (standardName != null) { | ||
12857 | process.env.NODE_ENV !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; | ||
12858 | return true; | ||
12859 | } else if (registrationName != null) { | ||
12860 | process.env.NODE_ENV !== 'production' ? warning(registrationName == null, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; | ||
12861 | return true; | ||
12862 | } else { | ||
12863 | // We were unable to guess which prop the user intended. | ||
12864 | // It is likely that the user was just blindly spreading/forwarding props | ||
12865 | // Components should be careful to only render valid props/attributes. | ||
12866 | // Warning will be invoked in warnUnknownProperties to allow grouping. | ||
12867 | return false; | ||
12868 | } | ||
12869 | }; | ||
12870 | } | ||
12871 | |||
12872 | var warnUnknownProperties = function (debugID, element) { | ||
12873 | var unknownProps = []; | ||
12874 | for (var key in element.props) { | ||
12875 | var isValid = validateProperty(element.type, key, debugID); | ||
12876 | if (!isValid) { | ||
12877 | unknownProps.push(key); | ||
12878 | } | ||
12879 | } | ||
12880 | |||
12881 | var unknownPropString = unknownProps.map(function (prop) { | ||
12882 | return '`' + prop + '`'; | ||
12883 | }).join(', '); | ||
12884 | |||
12885 | if (unknownProps.length === 1) { | ||
12886 | process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; | ||
12887 | } else if (unknownProps.length > 1) { | ||
12888 | process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0; | ||
12889 | } | ||
12890 | }; | ||
12891 | |||
12892 | function handleElement(debugID, element) { | ||
12893 | if (element == null || typeof element.type !== 'string') { | ||
12894 | return; | ||
12895 | } | ||
12896 | if (element.type.indexOf('-') >= 0 || element.props.is) { | ||
12897 | return; | ||
12898 | } | ||
12899 | warnUnknownProperties(debugID, element); | ||
12900 | } | ||
12901 | |||
12902 | var ReactDOMUnknownPropertyDevtool = { | ||
12903 | onBeforeMountComponent: function (debugID, element) { | ||
12904 | handleElement(debugID, element); | ||
12905 | }, | ||
12906 | onBeforeUpdateComponent: function (debugID, element) { | ||
12907 | handleElement(debugID, element); | ||
12908 | } | ||
12909 | }; | ||
12910 | |||
12911 | module.exports = ReactDOMUnknownPropertyDevtool; | ||
12912 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
12913 | |||
12914 | /***/ }, | ||
12915 | /* 113 */ | ||
12916 | /***/ function(module, exports, __webpack_require__) { | 12730 | /***/ function(module, exports, __webpack_require__) { |
12917 | 12731 | ||
12918 | /** | 12732 | /** |
@@ -12928,7 +12742,7 @@ | |||
12928 | 12742 | ||
12929 | 'use strict'; | 12743 | 'use strict'; |
12930 | 12744 | ||
12931 | var escapeTextContentForBrowser = __webpack_require__(90); | 12745 | var escapeTextContentForBrowser = __webpack_require__(89); |
12932 | 12746 | ||
12933 | /** | 12747 | /** |
12934 | * Escapes attribute value to prevent scripting attacks. | 12748 | * Escapes attribute value to prevent scripting attacks. |
@@ -12943,7 +12757,7 @@ | |||
12943 | module.exports = quoteAttributeValueForBrowser; | 12757 | module.exports = quoteAttributeValueForBrowser; |
12944 | 12758 | ||
12945 | /***/ }, | 12759 | /***/ }, |
12946 | /* 114 */ | 12760 | /* 109 */ |
12947 | /***/ function(module, exports, __webpack_require__) { | 12761 | /***/ function(module, exports, __webpack_require__) { |
12948 | 12762 | ||
12949 | /** | 12763 | /** |
@@ -12961,13 +12775,13 @@ | |||
12961 | 12775 | ||
12962 | var _assign = __webpack_require__(6); | 12776 | var _assign = __webpack_require__(6); |
12963 | 12777 | ||
12964 | var EventConstants = __webpack_require__(44); | 12778 | var EventConstants = __webpack_require__(43); |
12965 | var EventPluginRegistry = __webpack_require__(47); | 12779 | var EventPluginRegistry = __webpack_require__(46); |
12966 | var ReactEventEmitterMixin = __webpack_require__(115); | 12780 | var ReactEventEmitterMixin = __webpack_require__(110); |
12967 | var ViewportMetrics = __webpack_require__(80); | 12781 | var ViewportMetrics = __webpack_require__(79); |
12968 | 12782 | ||
12969 | var getVendorPrefixedEventName = __webpack_require__(116); | 12783 | var getVendorPrefixedEventName = __webpack_require__(111); |
12970 | var isEventSupported = __webpack_require__(74); | 12784 | var isEventSupported = __webpack_require__(73); |
12971 | 12785 | ||
12972 | /** | 12786 | /** |
12973 | * Summary of `ReactBrowserEventEmitter` event handling: | 12787 | * Summary of `ReactBrowserEventEmitter` event handling: |
@@ -13239,6 +13053,19 @@ | |||
13239 | }, | 13053 | }, |
13240 | 13054 | ||
13241 | /** | 13055 | /** |
13056 | * Protect against document.createEvent() returning null | ||
13057 | * Some popup blocker extensions appear to do this: | ||
13058 | * https://github.com/facebook/react/issues/6887 | ||
13059 | */ | ||
13060 | supportsEventPageXY: function () { | ||
13061 | if (!document.createEvent) { | ||
13062 | return false; | ||
13063 | } | ||
13064 | var ev = document.createEvent('MouseEvent'); | ||
13065 | return ev != null && 'pageX' in ev; | ||
13066 | }, | ||
13067 | |||
13068 | /** | ||
13242 | * Listens to window scroll and resize events. We cache scroll values so that | 13069 | * Listens to window scroll and resize events. We cache scroll values so that |
13243 | * application code can access them without triggering reflows. | 13070 | * application code can access them without triggering reflows. |
13244 | * | 13071 | * |
@@ -13251,7 +13078,7 @@ | |||
13251 | */ | 13078 | */ |
13252 | ensureScrollValueMonitoring: function () { | 13079 | ensureScrollValueMonitoring: function () { |
13253 | if (hasEventPageXY === undefined) { | 13080 | if (hasEventPageXY === undefined) { |
13254 | hasEventPageXY = document.createEvent && 'pageX' in document.createEvent('MouseEvent'); | 13081 | hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY(); |
13255 | } | 13082 | } |
13256 | if (!hasEventPageXY && !isMonitoringScrollValue) { | 13083 | if (!hasEventPageXY && !isMonitoringScrollValue) { |
13257 | var refresh = ViewportMetrics.refreshScrollValues; | 13084 | var refresh = ViewportMetrics.refreshScrollValues; |
@@ -13265,7 +13092,7 @@ | |||
13265 | module.exports = ReactBrowserEventEmitter; | 13092 | module.exports = ReactBrowserEventEmitter; |
13266 | 13093 | ||
13267 | /***/ }, | 13094 | /***/ }, |
13268 | /* 115 */ | 13095 | /* 110 */ |
13269 | /***/ function(module, exports, __webpack_require__) { | 13096 | /***/ function(module, exports, __webpack_require__) { |
13270 | 13097 | ||
13271 | /** | 13098 | /** |
@@ -13281,7 +13108,7 @@ | |||
13281 | 13108 | ||
13282 | 'use strict'; | 13109 | 'use strict'; |
13283 | 13110 | ||
13284 | var EventPluginHub = __webpack_require__(46); | 13111 | var EventPluginHub = __webpack_require__(45); |
13285 | 13112 | ||
13286 | function runEventQueueInBatch(events) { | 13113 | function runEventQueueInBatch(events) { |
13287 | EventPluginHub.enqueueEvents(events); | 13114 | EventPluginHub.enqueueEvents(events); |
@@ -13303,7 +13130,7 @@ | |||
13303 | module.exports = ReactEventEmitterMixin; | 13130 | module.exports = ReactEventEmitterMixin; |
13304 | 13131 | ||
13305 | /***/ }, | 13132 | /***/ }, |
13306 | /* 116 */ | 13133 | /* 111 */ |
13307 | /***/ function(module, exports, __webpack_require__) { | 13134 | /***/ function(module, exports, __webpack_require__) { |
13308 | 13135 | ||
13309 | /** | 13136 | /** |
@@ -13319,7 +13146,7 @@ | |||
13319 | 13146 | ||
13320 | 'use strict'; | 13147 | 'use strict'; |
13321 | 13148 | ||
13322 | var ExecutionEnvironment = __webpack_require__(52); | 13149 | var ExecutionEnvironment = __webpack_require__(51); |
13323 | 13150 | ||
13324 | /** | 13151 | /** |
13325 | * Generate a mapping of standard vendor prefixes using the defined style property and event name. | 13152 | * Generate a mapping of standard vendor prefixes using the defined style property and event name. |
@@ -13409,7 +13236,7 @@ | |||
13409 | module.exports = getVendorPrefixedEventName; | 13236 | module.exports = getVendorPrefixedEventName; |
13410 | 13237 | ||
13411 | /***/ }, | 13238 | /***/ }, |
13412 | /* 117 */ | 13239 | /* 112 */ |
13413 | /***/ function(module, exports, __webpack_require__) { | 13240 | /***/ function(module, exports, __webpack_require__) { |
13414 | 13241 | ||
13415 | /** | 13242 | /** |
@@ -13425,7 +13252,7 @@ | |||
13425 | 13252 | ||
13426 | 'use strict'; | 13253 | 'use strict'; |
13427 | 13254 | ||
13428 | var DisabledInputUtils = __webpack_require__(118); | 13255 | var DisabledInputUtils = __webpack_require__(113); |
13429 | 13256 | ||
13430 | /** | 13257 | /** |
13431 | * Implements a <button> host component that does not receive mouse events | 13258 | * Implements a <button> host component that does not receive mouse events |
@@ -13438,7 +13265,7 @@ | |||
13438 | module.exports = ReactDOMButton; | 13265 | module.exports = ReactDOMButton; |
13439 | 13266 | ||
13440 | /***/ }, | 13267 | /***/ }, |
13441 | /* 118 */ | 13268 | /* 113 */ |
13442 | /***/ function(module, exports) { | 13269 | /***/ function(module, exports) { |
13443 | 13270 | ||
13444 | /** | 13271 | /** |
@@ -13493,7 +13320,7 @@ | |||
13493 | module.exports = DisabledInputUtils; | 13320 | module.exports = DisabledInputUtils; |
13494 | 13321 | ||
13495 | /***/ }, | 13322 | /***/ }, |
13496 | /* 119 */ | 13323 | /* 114 */ |
13497 | /***/ function(module, exports, __webpack_require__) { | 13324 | /***/ function(module, exports, __webpack_require__) { |
13498 | 13325 | ||
13499 | /* WEBPACK VAR INJECTION */(function(process) {/** | 13326 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -13512,11 +13339,11 @@ | |||
13512 | var _prodInvariant = __webpack_require__(9), | 13339 | var _prodInvariant = __webpack_require__(9), |
13513 | _assign = __webpack_require__(6); | 13340 | _assign = __webpack_require__(6); |
13514 | 13341 | ||
13515 | var DisabledInputUtils = __webpack_require__(118); | 13342 | var DisabledInputUtils = __webpack_require__(113); |
13516 | var DOMPropertyOperations = __webpack_require__(108); | 13343 | var DOMPropertyOperations = __webpack_require__(107); |
13517 | var LinkedValueUtils = __webpack_require__(120); | 13344 | var LinkedValueUtils = __webpack_require__(115); |
13518 | var ReactDOMComponentTree = __webpack_require__(39); | 13345 | var ReactDOMComponentTree = __webpack_require__(38); |
13519 | var ReactUpdates = __webpack_require__(59); | 13346 | var ReactUpdates = __webpack_require__(58); |
13520 | 13347 | ||
13521 | var invariant = __webpack_require__(10); | 13348 | var invariant = __webpack_require__(10); |
13522 | var warning = __webpack_require__(13); | 13349 | var warning = __webpack_require__(13); |
@@ -13537,7 +13364,7 @@ | |||
13537 | 13364 | ||
13538 | function isControlled(props) { | 13365 | function isControlled(props) { |
13539 | var usesChecked = props.type === 'checkbox' || props.type === 'radio'; | 13366 | var usesChecked = props.type === 'checkbox' || props.type === 'radio'; |
13540 | return usesChecked ? props.checked !== undefined : props.value !== undefined; | 13367 | return usesChecked ? props.checked != null : props.value != null; |
13541 | } | 13368 | } |
13542 | 13369 | ||
13543 | /** | 13370 | /** |
@@ -13567,7 +13394,11 @@ | |||
13567 | type: undefined, | 13394 | type: undefined, |
13568 | // Make sure we set .step before .value (setting .value before .step | 13395 | // Make sure we set .step before .value (setting .value before .step |
13569 | // means .value is rounded on mount, based upon step precision) | 13396 | // means .value is rounded on mount, based upon step precision) |
13570 | step: undefined | 13397 | step: undefined, |
13398 | // Make sure we set .min & .max before .value (to ensure proper order | ||
13399 | // in corner cases such as min or max deriving from value, e.g. Issue #7170) | ||
13400 | min: undefined, | ||
13401 | max: undefined | ||
13571 | }, DisabledInputUtils.getHostProps(inst, props), { | 13402 | }, DisabledInputUtils.getHostProps(inst, props), { |
13572 | defaultChecked: undefined, | 13403 | defaultChecked: undefined, |
13573 | defaultValue: undefined, | 13404 | defaultValue: undefined, |
@@ -13673,8 +13504,26 @@ | |||
13673 | // are not resetable nodes so this operation doesn't matter and actually | 13504 | // are not resetable nodes so this operation doesn't matter and actually |
13674 | // removes browser-default values (eg "Submit Query") when no value is | 13505 | // removes browser-default values (eg "Submit Query") when no value is |
13675 | // provided. | 13506 | // provided. |
13676 | if (props.type !== 'submit' && props.type !== 'reset') { | 13507 | |
13677 | node.value = node.value; | 13508 | switch (props.type) { |
13509 | case 'submit': | ||
13510 | case 'reset': | ||
13511 | break; | ||
13512 | case 'color': | ||
13513 | case 'date': | ||
13514 | case 'datetime': | ||
13515 | case 'datetime-local': | ||
13516 | case 'month': | ||
13517 | case 'time': | ||
13518 | case 'week': | ||
13519 | // This fixes the no-show issue on iOS Safari and Android Chrome: | ||
13520 | // https://github.com/facebook/react/issues/7233 | ||
13521 | node.value = ''; | ||
13522 | node.value = node.defaultValue; | ||
13523 | break; | ||
13524 | default: | ||
13525 | node.value = node.value; | ||
13526 | break; | ||
13678 | } | 13527 | } |
13679 | 13528 | ||
13680 | // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug | 13529 | // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug |
@@ -13746,7 +13595,7 @@ | |||
13746 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 13595 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
13747 | 13596 | ||
13748 | /***/ }, | 13597 | /***/ }, |
13749 | /* 120 */ | 13598 | /* 115 */ |
13750 | /***/ function(module, exports, __webpack_require__) { | 13599 | /***/ function(module, exports, __webpack_require__) { |
13751 | 13600 | ||
13752 | /* WEBPACK VAR INJECTION */(function(process) {/** | 13601 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -13764,9 +13613,9 @@ | |||
13764 | 13613 | ||
13765 | var _prodInvariant = __webpack_require__(9); | 13614 | var _prodInvariant = __webpack_require__(9); |
13766 | 13615 | ||
13767 | var ReactPropTypes = __webpack_require__(34); | 13616 | var ReactPropTypes = __webpack_require__(33); |
13768 | var ReactPropTypeLocations = __webpack_require__(24); | 13617 | var ReactPropTypeLocations = __webpack_require__(24); |
13769 | var ReactPropTypesSecret = __webpack_require__(33); | 13618 | var ReactPropTypesSecret = __webpack_require__(32); |
13770 | 13619 | ||
13771 | var invariant = __webpack_require__(10); | 13620 | var invariant = __webpack_require__(10); |
13772 | var warning = __webpack_require__(13); | 13621 | var warning = __webpack_require__(13); |
@@ -13888,7 +13737,7 @@ | |||
13888 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 13737 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
13889 | 13738 | ||
13890 | /***/ }, | 13739 | /***/ }, |
13891 | /* 121 */ | 13740 | /* 116 */ |
13892 | /***/ function(module, exports, __webpack_require__) { | 13741 | /***/ function(module, exports, __webpack_require__) { |
13893 | 13742 | ||
13894 | /* WEBPACK VAR INJECTION */(function(process) {/** | 13743 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -13907,8 +13756,8 @@ | |||
13907 | var _assign = __webpack_require__(6); | 13756 | var _assign = __webpack_require__(6); |
13908 | 13757 | ||
13909 | var ReactChildren = __webpack_require__(7); | 13758 | var ReactChildren = __webpack_require__(7); |
13910 | var ReactDOMComponentTree = __webpack_require__(39); | 13759 | var ReactDOMComponentTree = __webpack_require__(38); |
13911 | var ReactDOMSelect = __webpack_require__(122); | 13760 | var ReactDOMSelect = __webpack_require__(117); |
13912 | 13761 | ||
13913 | var warning = __webpack_require__(13); | 13762 | var warning = __webpack_require__(13); |
13914 | var didWarnInvalidOptionChildren = false; | 13763 | var didWarnInvalidOptionChildren = false; |
@@ -14017,7 +13866,7 @@ | |||
14017 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 13866 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
14018 | 13867 | ||
14019 | /***/ }, | 13868 | /***/ }, |
14020 | /* 122 */ | 13869 | /* 117 */ |
14021 | /***/ function(module, exports, __webpack_require__) { | 13870 | /***/ function(module, exports, __webpack_require__) { |
14022 | 13871 | ||
14023 | /* WEBPACK VAR INJECTION */(function(process) {/** | 13872 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -14035,10 +13884,10 @@ | |||
14035 | 13884 | ||
14036 | var _assign = __webpack_require__(6); | 13885 | var _assign = __webpack_require__(6); |
14037 | 13886 | ||
14038 | var DisabledInputUtils = __webpack_require__(118); | 13887 | var DisabledInputUtils = __webpack_require__(113); |
14039 | var LinkedValueUtils = __webpack_require__(120); | 13888 | var LinkedValueUtils = __webpack_require__(115); |
14040 | var ReactDOMComponentTree = __webpack_require__(39); | 13889 | var ReactDOMComponentTree = __webpack_require__(38); |
14041 | var ReactUpdates = __webpack_require__(59); | 13890 | var ReactUpdates = __webpack_require__(58); |
14042 | 13891 | ||
14043 | var warning = __webpack_require__(13); | 13892 | var warning = __webpack_require__(13); |
14044 | 13893 | ||
@@ -14088,10 +13937,11 @@ | |||
14088 | if (props[propName] == null) { | 13937 | if (props[propName] == null) { |
14089 | continue; | 13938 | continue; |
14090 | } | 13939 | } |
14091 | if (props.multiple) { | 13940 | var isArray = Array.isArray(props[propName]); |
14092 | process.env.NODE_ENV !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; | 13941 | if (props.multiple && !isArray) { |
14093 | } else { | 13942 | process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; |
14094 | process.env.NODE_ENV !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; | 13943 | } else if (!props.multiple && isArray) { |
13944 | process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; | ||
14095 | } | 13945 | } |
14096 | } | 13946 | } |
14097 | } | 13947 | } |
@@ -14223,7 +14073,7 @@ | |||
14223 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 14073 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
14224 | 14074 | ||
14225 | /***/ }, | 14075 | /***/ }, |
14226 | /* 123 */ | 14076 | /* 118 */ |
14227 | /***/ function(module, exports, __webpack_require__) { | 14077 | /***/ function(module, exports, __webpack_require__) { |
14228 | 14078 | ||
14229 | /* WEBPACK VAR INJECTION */(function(process) {/** | 14079 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -14242,10 +14092,10 @@ | |||
14242 | var _prodInvariant = __webpack_require__(9), | 14092 | var _prodInvariant = __webpack_require__(9), |
14243 | _assign = __webpack_require__(6); | 14093 | _assign = __webpack_require__(6); |
14244 | 14094 | ||
14245 | var DisabledInputUtils = __webpack_require__(118); | 14095 | var DisabledInputUtils = __webpack_require__(113); |
14246 | var LinkedValueUtils = __webpack_require__(120); | 14096 | var LinkedValueUtils = __webpack_require__(115); |
14247 | var ReactDOMComponentTree = __webpack_require__(39); | 14097 | var ReactDOMComponentTree = __webpack_require__(38); |
14248 | var ReactUpdates = __webpack_require__(59); | 14098 | var ReactUpdates = __webpack_require__(58); |
14249 | 14099 | ||
14250 | var invariant = __webpack_require__(10); | 14100 | var invariant = __webpack_require__(10); |
14251 | var warning = __webpack_require__(13); | 14101 | var warning = __webpack_require__(13); |
@@ -14384,7 +14234,7 @@ | |||
14384 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 14234 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
14385 | 14235 | ||
14386 | /***/ }, | 14236 | /***/ }, |
14387 | /* 124 */ | 14237 | /* 119 */ |
14388 | /***/ function(module, exports, __webpack_require__) { | 14238 | /***/ function(module, exports, __webpack_require__) { |
14389 | 14239 | ||
14390 | /* WEBPACK VAR INJECTION */(function(process) {/** | 14240 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -14402,17 +14252,17 @@ | |||
14402 | 14252 | ||
14403 | var _prodInvariant = __webpack_require__(9); | 14253 | var _prodInvariant = __webpack_require__(9); |
14404 | 14254 | ||
14405 | var ReactComponentEnvironment = __webpack_require__(125); | 14255 | var ReactComponentEnvironment = __webpack_require__(120); |
14406 | var ReactInstanceMap = __webpack_require__(126); | 14256 | var ReactInstanceMap = __webpack_require__(121); |
14407 | var ReactInstrumentation = __webpack_require__(65); | 14257 | var ReactInstrumentation = __webpack_require__(64); |
14408 | var ReactMultiChildUpdateTypes = __webpack_require__(95); | 14258 | var ReactMultiChildUpdateTypes = __webpack_require__(94); |
14409 | 14259 | ||
14410 | var ReactCurrentOwner = __webpack_require__(12); | 14260 | var ReactCurrentOwner = __webpack_require__(12); |
14411 | var ReactReconciler = __webpack_require__(62); | 14261 | var ReactReconciler = __webpack_require__(61); |
14412 | var ReactChildReconciler = __webpack_require__(127); | 14262 | var ReactChildReconciler = __webpack_require__(122); |
14413 | 14263 | ||
14414 | var emptyFunction = __webpack_require__(14); | 14264 | var emptyFunction = __webpack_require__(14); |
14415 | var flattenChildren = __webpack_require__(135); | 14265 | var flattenChildren = __webpack_require__(130); |
14416 | var invariant = __webpack_require__(10); | 14266 | var invariant = __webpack_require__(10); |
14417 | 14267 | ||
14418 | /** | 14268 | /** |
@@ -14528,7 +14378,6 @@ | |||
14528 | ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue); | 14378 | ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue); |
14529 | } | 14379 | } |
14530 | 14380 | ||
14531 | var setParentForInstrumentation = emptyFunction; | ||
14532 | var setChildrenForInstrumentation = emptyFunction; | 14381 | var setChildrenForInstrumentation = emptyFunction; |
14533 | if (process.env.NODE_ENV !== 'production') { | 14382 | if (process.env.NODE_ENV !== 'production') { |
14534 | var getDebugID = function (inst) { | 14383 | var getDebugID = function (inst) { |
@@ -14541,11 +14390,6 @@ | |||
14541 | } | 14390 | } |
14542 | return inst._debugID; | 14391 | return inst._debugID; |
14543 | }; | 14392 | }; |
14544 | setParentForInstrumentation = function (child) { | ||
14545 | if (child._debugID !== 0) { | ||
14546 | ReactInstrumentation.debugTool.onSetParent(child._debugID, getDebugID(this)); | ||
14547 | } | ||
14548 | }; | ||
14549 | setChildrenForInstrumentation = function (children) { | 14393 | setChildrenForInstrumentation = function (children) { |
14550 | var debugID = getDebugID(this); | 14394 | var debugID = getDebugID(this); |
14551 | // TODO: React Native empty components are also multichild. | 14395 | // TODO: React Native empty components are also multichild. |
@@ -14577,10 +14421,11 @@ | |||
14577 | 14421 | ||
14578 | _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { | 14422 | _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { |
14579 | if (process.env.NODE_ENV !== 'production') { | 14423 | if (process.env.NODE_ENV !== 'production') { |
14424 | var selfDebugID = getDebugID(this); | ||
14580 | if (this._currentElement) { | 14425 | if (this._currentElement) { |
14581 | try { | 14426 | try { |
14582 | ReactCurrentOwner.current = this._currentElement._owner; | 14427 | ReactCurrentOwner.current = this._currentElement._owner; |
14583 | return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, this._debugID); | 14428 | return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID); |
14584 | } finally { | 14429 | } finally { |
14585 | ReactCurrentOwner.current = null; | 14430 | ReactCurrentOwner.current = null; |
14586 | } | 14431 | } |
@@ -14591,20 +14436,22 @@ | |||
14591 | 14436 | ||
14592 | _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) { | 14437 | _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) { |
14593 | var nextChildren; | 14438 | var nextChildren; |
14439 | var selfDebugID = 0; | ||
14594 | if (process.env.NODE_ENV !== 'production') { | 14440 | if (process.env.NODE_ENV !== 'production') { |
14441 | selfDebugID = getDebugID(this); | ||
14595 | if (this._currentElement) { | 14442 | if (this._currentElement) { |
14596 | try { | 14443 | try { |
14597 | ReactCurrentOwner.current = this._currentElement._owner; | 14444 | ReactCurrentOwner.current = this._currentElement._owner; |
14598 | nextChildren = flattenChildren(nextNestedChildrenElements, this._debugID); | 14445 | nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); |
14599 | } finally { | 14446 | } finally { |
14600 | ReactCurrentOwner.current = null; | 14447 | ReactCurrentOwner.current = null; |
14601 | } | 14448 | } |
14602 | ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context); | 14449 | ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); |
14603 | return nextChildren; | 14450 | return nextChildren; |
14604 | } | 14451 | } |
14605 | } | 14452 | } |
14606 | nextChildren = flattenChildren(nextNestedChildrenElements); | 14453 | nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); |
14607 | ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context); | 14454 | ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); |
14608 | return nextChildren; | 14455 | return nextChildren; |
14609 | }, | 14456 | }, |
14610 | 14457 | ||
@@ -14625,10 +14472,11 @@ | |||
14625 | for (var name in children) { | 14472 | for (var name in children) { |
14626 | if (children.hasOwnProperty(name)) { | 14473 | if (children.hasOwnProperty(name)) { |
14627 | var child = children[name]; | 14474 | var child = children[name]; |
14475 | var selfDebugID = 0; | ||
14628 | if (process.env.NODE_ENV !== 'production') { | 14476 | if (process.env.NODE_ENV !== 'production') { |
14629 | setParentForInstrumentation.call(this, child); | 14477 | selfDebugID = getDebugID(this); |
14630 | } | 14478 | } |
14631 | var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context); | 14479 | var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID); |
14632 | child._mountIndex = index++; | 14480 | child._mountIndex = index++; |
14633 | mountImages.push(mountImage); | 14481 | mountImages.push(mountImage); |
14634 | } | 14482 | } |
@@ -14843,7 +14691,7 @@ | |||
14843 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 14691 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
14844 | 14692 | ||
14845 | /***/ }, | 14693 | /***/ }, |
14846 | /* 125 */ | 14694 | /* 120 */ |
14847 | /***/ function(module, exports, __webpack_require__) { | 14695 | /***/ function(module, exports, __webpack_require__) { |
14848 | 14696 | ||
14849 | /* WEBPACK VAR INJECTION */(function(process) {/** | 14697 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -14868,13 +14716,6 @@ | |||
14868 | var ReactComponentEnvironment = { | 14716 | var ReactComponentEnvironment = { |
14869 | 14717 | ||
14870 | /** | 14718 | /** |
14871 | * Optionally injectable environment dependent cleanup hook. (server vs. | ||
14872 | * browser etc). Example: A browser system caches DOM nodes based on component | ||
14873 | * ID and must remove that cache entry when this instance is unmounted. | ||
14874 | */ | ||
14875 | unmountIDFromEnvironment: null, | ||
14876 | |||
14877 | /** | ||
14878 | * Optionally injectable hook for swapping out mount images in the middle of | 14719 | * Optionally injectable hook for swapping out mount images in the middle of |
14879 | * the tree. | 14720 | * the tree. |
14880 | */ | 14721 | */ |
@@ -14889,7 +14730,6 @@ | |||
14889 | injection: { | 14730 | injection: { |
14890 | injectEnvironment: function (environment) { | 14731 | injectEnvironment: function (environment) { |
14891 | !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0; | 14732 | !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0; |
14892 | ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment; | ||
14893 | ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup; | 14733 | ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup; |
14894 | ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; | 14734 | ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; |
14895 | injected = true; | 14735 | injected = true; |
@@ -14902,7 +14742,7 @@ | |||
14902 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 14742 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
14903 | 14743 | ||
14904 | /***/ }, | 14744 | /***/ }, |
14905 | /* 126 */ | 14745 | /* 121 */ |
14906 | /***/ function(module, exports) { | 14746 | /***/ function(module, exports) { |
14907 | 14747 | ||
14908 | /** | 14748 | /** |
@@ -14955,7 +14795,7 @@ | |||
14955 | module.exports = ReactInstanceMap; | 14795 | module.exports = ReactInstanceMap; |
14956 | 14796 | ||
14957 | /***/ }, | 14797 | /***/ }, |
14958 | /* 127 */ | 14798 | /* 122 */ |
14959 | /***/ function(module, exports, __webpack_require__) { | 14799 | /***/ function(module, exports, __webpack_require__) { |
14960 | 14800 | ||
14961 | /* WEBPACK VAR INJECTION */(function(process) {/** | 14801 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -14971,15 +14811,15 @@ | |||
14971 | 14811 | ||
14972 | 'use strict'; | 14812 | 'use strict'; |
14973 | 14813 | ||
14974 | var ReactReconciler = __webpack_require__(62); | 14814 | var ReactReconciler = __webpack_require__(61); |
14975 | 14815 | ||
14976 | var instantiateReactComponent = __webpack_require__(128); | 14816 | var instantiateReactComponent = __webpack_require__(123); |
14977 | var KeyEscapeUtils = __webpack_require__(18); | 14817 | var KeyEscapeUtils = __webpack_require__(18); |
14978 | var shouldUpdateReactComponent = __webpack_require__(132); | 14818 | var shouldUpdateReactComponent = __webpack_require__(127); |
14979 | var traverseAllChildren = __webpack_require__(16); | 14819 | var traverseAllChildren = __webpack_require__(16); |
14980 | var warning = __webpack_require__(13); | 14820 | var warning = __webpack_require__(13); |
14981 | 14821 | ||
14982 | var ReactComponentTreeDevtool; | 14822 | var ReactComponentTreeHook; |
14983 | 14823 | ||
14984 | if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { | 14824 | if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { |
14985 | // Temporary hack. | 14825 | // Temporary hack. |
@@ -14987,17 +14827,19 @@ | |||
14987 | // https://github.com/facebook/react/issues/7240 | 14827 | // https://github.com/facebook/react/issues/7240 |
14988 | // Remove the inline requires when we don't need them anymore: | 14828 | // Remove the inline requires when we don't need them anymore: |
14989 | // https://github.com/facebook/react/pull/7178 | 14829 | // https://github.com/facebook/react/pull/7178 |
14990 | ReactComponentTreeDevtool = __webpack_require__(31); | 14830 | ReactComponentTreeHook = __webpack_require__(30); |
14991 | } | 14831 | } |
14992 | 14832 | ||
14993 | function instantiateChild(childInstances, child, name, selfDebugID) { | 14833 | function instantiateChild(childInstances, child, name, selfDebugID) { |
14994 | // We found a component instance. | 14834 | // We found a component instance. |
14995 | var keyUnique = childInstances[name] === undefined; | 14835 | var keyUnique = childInstances[name] === undefined; |
14996 | if (process.env.NODE_ENV !== 'production') { | 14836 | if (process.env.NODE_ENV !== 'production') { |
14997 | if (!ReactComponentTreeDevtool) { | 14837 | if (!ReactComponentTreeHook) { |
14998 | ReactComponentTreeDevtool = __webpack_require__(31); | 14838 | ReactComponentTreeHook = __webpack_require__(30); |
14839 | } | ||
14840 | if (!keyUnique) { | ||
14841 | process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; | ||
14999 | } | 14842 | } |
15000 | process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeDevtool.getStackAddendumByID(selfDebugID)) : void 0; | ||
15001 | } | 14843 | } |
15002 | if (child != null && keyUnique) { | 14844 | if (child != null && keyUnique) { |
15003 | childInstances[name] = instantiateReactComponent(child, true); | 14845 | childInstances[name] = instantiateReactComponent(child, true); |
@@ -15018,7 +14860,7 @@ | |||
15018 | * @return {?object} A set of child instances. | 14860 | * @return {?object} A set of child instances. |
15019 | * @internal | 14861 | * @internal |
15020 | */ | 14862 | */ |
15021 | instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // __DEV__ only | 14863 | instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots |
15022 | ) { | 14864 | ) { |
15023 | if (nestedChildNodes == null) { | 14865 | if (nestedChildNodes == null) { |
15024 | return null; | 14866 | return null; |
@@ -15045,7 +14887,8 @@ | |||
15045 | * @return {?object} A new set of child instances. | 14887 | * @return {?object} A new set of child instances. |
15046 | * @internal | 14888 | * @internal |
15047 | */ | 14889 | */ |
15048 | updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context) { | 14890 | updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots |
14891 | ) { | ||
15049 | // We currently don't have a way to track moves here but if we use iterators | 14892 | // We currently don't have a way to track moves here but if we use iterators |
15050 | // instead of for..in we can zip the iterators and check if an item has | 14893 | // instead of for..in we can zip the iterators and check if an item has |
15051 | // moved. | 14894 | // moved. |
@@ -15076,7 +14919,7 @@ | |||
15076 | nextChildren[name] = nextChildInstance; | 14919 | nextChildren[name] = nextChildInstance; |
15077 | // Creating mount image now ensures refs are resolved in right order | 14920 | // Creating mount image now ensures refs are resolved in right order |
15078 | // (see https://github.com/facebook/react/pull/7101 for explanation). | 14921 | // (see https://github.com/facebook/react/pull/7101 for explanation). |
15079 | var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context); | 14922 | var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID); |
15080 | mountImages.push(nextChildMountImage); | 14923 | mountImages.push(nextChildMountImage); |
15081 | } | 14924 | } |
15082 | } | 14925 | } |
@@ -15112,7 +14955,7 @@ | |||
15112 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 14955 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
15113 | 14956 | ||
15114 | /***/ }, | 14957 | /***/ }, |
15115 | /* 128 */ | 14958 | /* 123 */ |
15116 | /***/ function(module, exports, __webpack_require__) { | 14959 | /***/ function(module, exports, __webpack_require__) { |
15117 | 14960 | ||
15118 | /* WEBPACK VAR INJECTION */(function(process) {/** | 14961 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -15131,10 +14974,9 @@ | |||
15131 | var _prodInvariant = __webpack_require__(9), | 14974 | var _prodInvariant = __webpack_require__(9), |
15132 | _assign = __webpack_require__(6); | 14975 | _assign = __webpack_require__(6); |
15133 | 14976 | ||
15134 | var ReactCompositeComponent = __webpack_require__(129); | 14977 | var ReactCompositeComponent = __webpack_require__(124); |
15135 | var ReactEmptyComponent = __webpack_require__(133); | 14978 | var ReactEmptyComponent = __webpack_require__(128); |
15136 | var ReactHostComponent = __webpack_require__(134); | 14979 | var ReactHostComponent = __webpack_require__(129); |
15137 | var ReactInstrumentation = __webpack_require__(65); | ||
15138 | 14980 | ||
15139 | var invariant = __webpack_require__(10); | 14981 | var invariant = __webpack_require__(10); |
15140 | var warning = __webpack_require__(13); | 14982 | var warning = __webpack_require__(13); |
@@ -15157,21 +14999,6 @@ | |||
15157 | return ''; | 14999 | return ''; |
15158 | } | 15000 | } |
15159 | 15001 | ||
15160 | function getDisplayName(instance) { | ||
15161 | var element = instance._currentElement; | ||
15162 | if (element == null) { | ||
15163 | return '#empty'; | ||
15164 | } else if (typeof element === 'string' || typeof element === 'number') { | ||
15165 | return '#text'; | ||
15166 | } else if (typeof element.type === 'string') { | ||
15167 | return element.type; | ||
15168 | } else if (instance.getName) { | ||
15169 | return instance.getName() || 'Unknown'; | ||
15170 | } else { | ||
15171 | return element.type.displayName || element.type.name || 'Unknown'; | ||
15172 | } | ||
15173 | } | ||
15174 | |||
15175 | /** | 15002 | /** |
15176 | * Check if the type reference is a known internal type. I.e. not a user | 15003 | * Check if the type reference is a known internal type. I.e. not a user |
15177 | * provided composite type. | 15004 | * provided composite type. |
@@ -15235,18 +15062,7 @@ | |||
15235 | instance._mountImage = null; | 15062 | instance._mountImage = null; |
15236 | 15063 | ||
15237 | if (process.env.NODE_ENV !== 'production') { | 15064 | if (process.env.NODE_ENV !== 'production') { |
15238 | if (shouldHaveDebugID) { | 15065 | instance._debugID = shouldHaveDebugID ? nextDebugID++ : 0; |
15239 | var debugID = nextDebugID++; | ||
15240 | instance._debugID = debugID; | ||
15241 | var displayName = getDisplayName(instance); | ||
15242 | ReactInstrumentation.debugTool.onSetDisplayName(debugID, displayName); | ||
15243 | var owner = node && node._owner; | ||
15244 | if (owner) { | ||
15245 | ReactInstrumentation.debugTool.onSetOwner(debugID, owner._debugID); | ||
15246 | } | ||
15247 | } else { | ||
15248 | instance._debugID = 0; | ||
15249 | } | ||
15250 | } | 15066 | } |
15251 | 15067 | ||
15252 | // Internal instances should fully constructed at this point, so they should | 15068 | // Internal instances should fully constructed at this point, so they should |
@@ -15264,7 +15080,7 @@ | |||
15264 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 15080 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
15265 | 15081 | ||
15266 | /***/ }, | 15082 | /***/ }, |
15267 | /* 129 */ | 15083 | /* 124 */ |
15268 | /***/ function(module, exports, __webpack_require__) { | 15084 | /***/ function(module, exports, __webpack_require__) { |
15269 | 15085 | ||
15270 | /* WEBPACK VAR INJECTION */(function(process) {/** | 15086 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -15283,21 +15099,21 @@ | |||
15283 | var _prodInvariant = __webpack_require__(9), | 15099 | var _prodInvariant = __webpack_require__(9), |
15284 | _assign = __webpack_require__(6); | 15100 | _assign = __webpack_require__(6); |
15285 | 15101 | ||
15286 | var ReactComponentEnvironment = __webpack_require__(125); | 15102 | var ReactComponentEnvironment = __webpack_require__(120); |
15287 | var ReactCurrentOwner = __webpack_require__(12); | 15103 | var ReactCurrentOwner = __webpack_require__(12); |
15288 | var ReactElement = __webpack_require__(11); | 15104 | var ReactElement = __webpack_require__(11); |
15289 | var ReactErrorUtils = __webpack_require__(49); | 15105 | var ReactErrorUtils = __webpack_require__(48); |
15290 | var ReactInstanceMap = __webpack_require__(126); | 15106 | var ReactInstanceMap = __webpack_require__(121); |
15291 | var ReactInstrumentation = __webpack_require__(65); | 15107 | var ReactInstrumentation = __webpack_require__(64); |
15292 | var ReactNodeTypes = __webpack_require__(130); | 15108 | var ReactNodeTypes = __webpack_require__(125); |
15293 | var ReactPropTypeLocations = __webpack_require__(24); | 15109 | var ReactPropTypeLocations = __webpack_require__(24); |
15294 | var ReactReconciler = __webpack_require__(62); | 15110 | var ReactReconciler = __webpack_require__(61); |
15295 | 15111 | ||
15296 | var checkReactTypeSpec = __webpack_require__(32); | 15112 | var checkReactTypeSpec = __webpack_require__(31); |
15297 | var emptyObject = __webpack_require__(21); | 15113 | var emptyObject = __webpack_require__(21); |
15298 | var invariant = __webpack_require__(10); | 15114 | var invariant = __webpack_require__(10); |
15299 | var shallowEqual = __webpack_require__(131); | 15115 | var shallowEqual = __webpack_require__(126); |
15300 | var shouldUpdateReactComponent = __webpack_require__(132); | 15116 | var shouldUpdateReactComponent = __webpack_require__(127); |
15301 | var warning = __webpack_require__(13); | 15117 | var warning = __webpack_require__(13); |
15302 | 15118 | ||
15303 | var CompositeTypes = { | 15119 | var CompositeTypes = { |
@@ -15321,28 +15137,6 @@ | |||
15321 | } | 15137 | } |
15322 | } | 15138 | } |
15323 | 15139 | ||
15324 | function invokeComponentDidMountWithTimer() { | ||
15325 | var publicInstance = this._instance; | ||
15326 | if (this._debugID !== 0) { | ||
15327 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidMount'); | ||
15328 | } | ||
15329 | publicInstance.componentDidMount(); | ||
15330 | if (this._debugID !== 0) { | ||
15331 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidMount'); | ||
15332 | } | ||
15333 | } | ||
15334 | |||
15335 | function invokeComponentDidUpdateWithTimer(prevProps, prevState, prevContext) { | ||
15336 | var publicInstance = this._instance; | ||
15337 | if (this._debugID !== 0) { | ||
15338 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidUpdate'); | ||
15339 | } | ||
15340 | publicInstance.componentDidUpdate(prevProps, prevState, prevContext); | ||
15341 | if (this._debugID !== 0) { | ||
15342 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidUpdate'); | ||
15343 | } | ||
15344 | } | ||
15345 | |||
15346 | function shouldConstruct(Component) { | 15140 | function shouldConstruct(Component) { |
15347 | return !!(Component.prototype && Component.prototype.isReactComponent); | 15141 | return !!(Component.prototype && Component.prototype.isReactComponent); |
15348 | } | 15142 | } |
@@ -15351,6 +15145,23 @@ | |||
15351 | return !!(Component.prototype && Component.prototype.isPureReactComponent); | 15145 | return !!(Component.prototype && Component.prototype.isPureReactComponent); |
15352 | } | 15146 | } |
15353 | 15147 | ||
15148 | // Separated into a function to contain deoptimizations caused by try/finally. | ||
15149 | function measureLifeCyclePerf(fn, debugID, timerType) { | ||
15150 | if (debugID === 0) { | ||
15151 | // Top-level wrappers (see ReactMount) and empty components (see | ||
15152 | // ReactDOMEmptyComponent) are invisible to hooks and devtools. | ||
15153 | // Both are implementation details that should go away in the future. | ||
15154 | return fn(); | ||
15155 | } | ||
15156 | |||
15157 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType); | ||
15158 | try { | ||
15159 | return fn(); | ||
15160 | } finally { | ||
15161 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType); | ||
15162 | } | ||
15163 | } | ||
15164 | |||
15354 | /** | 15165 | /** |
15355 | * ------------------ The Life-Cycle of a Composite Component ------------------ | 15166 | * ------------------ The Life-Cycle of a Composite Component ------------------ |
15356 | * | 15167 | * |
@@ -15400,7 +15211,7 @@ | |||
15400 | */ | 15211 | */ |
15401 | construct: function (element) { | 15212 | construct: function (element) { |
15402 | this._currentElement = element; | 15213 | this._currentElement = element; |
15403 | this._rootNodeID = null; | 15214 | this._rootNodeID = 0; |
15404 | this._compositeType = null; | 15215 | this._compositeType = null; |
15405 | this._instance = null; | 15216 | this._instance = null; |
15406 | this._hostParent = null; | 15217 | this._hostParent = null; |
@@ -15533,21 +15344,16 @@ | |||
15533 | 15344 | ||
15534 | if (inst.componentDidMount) { | 15345 | if (inst.componentDidMount) { |
15535 | if (process.env.NODE_ENV !== 'production') { | 15346 | if (process.env.NODE_ENV !== 'production') { |
15536 | transaction.getReactMountReady().enqueue(invokeComponentDidMountWithTimer, this); | 15347 | transaction.getReactMountReady().enqueue(function () { |
15348 | measureLifeCyclePerf(function () { | ||
15349 | return inst.componentDidMount(); | ||
15350 | }, _this._debugID, 'componentDidMount'); | ||
15351 | }); | ||
15537 | } else { | 15352 | } else { |
15538 | transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); | 15353 | transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); |
15539 | } | 15354 | } |
15540 | } | 15355 | } |
15541 | 15356 | ||
15542 | if (process.env.NODE_ENV !== 'production') { | ||
15543 | if (this._debugID) { | ||
15544 | var callback = function (component) { | ||
15545 | return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID); | ||
15546 | }; | ||
15547 | transaction.getReactMountReady().enqueue(callback, this); | ||
15548 | } | ||
15549 | } | ||
15550 | |||
15551 | return markup; | 15357 | return markup; |
15552 | }, | 15358 | }, |
15553 | 15359 | ||
@@ -15566,35 +15372,26 @@ | |||
15566 | 15372 | ||
15567 | _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) { | 15373 | _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) { |
15568 | var Component = this._currentElement.type; | 15374 | var Component = this._currentElement.type; |
15569 | var instanceOrElement; | 15375 | |
15570 | if (doConstruct) { | 15376 | if (doConstruct) { |
15571 | if (process.env.NODE_ENV !== 'production') { | 15377 | if (process.env.NODE_ENV !== 'production') { |
15572 | if (this._debugID !== 0) { | 15378 | return measureLifeCyclePerf(function () { |
15573 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'ctor'); | 15379 | return new Component(publicProps, publicContext, updateQueue); |
15574 | } | 15380 | }, this._debugID, 'ctor'); |
15575 | } | 15381 | } else { |
15576 | instanceOrElement = new Component(publicProps, publicContext, updateQueue); | 15382 | return new Component(publicProps, publicContext, updateQueue); |
15577 | if (process.env.NODE_ENV !== 'production') { | ||
15578 | if (this._debugID !== 0) { | ||
15579 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'ctor'); | ||
15580 | } | ||
15581 | } | 15383 | } |
15384 | } | ||
15385 | |||
15386 | // This can still be an instance in case of factory components | ||
15387 | // but we'll count this as time spent rendering as the more common case. | ||
15388 | if (process.env.NODE_ENV !== 'production') { | ||
15389 | return measureLifeCyclePerf(function () { | ||
15390 | return Component(publicProps, publicContext, updateQueue); | ||
15391 | }, this._debugID, 'render'); | ||
15582 | } else { | 15392 | } else { |
15583 | // This can still be an instance in case of factory components | 15393 | return Component(publicProps, publicContext, updateQueue); |
15584 | // but we'll count this as time spent rendering as the more common case. | ||
15585 | if (process.env.NODE_ENV !== 'production') { | ||
15586 | if (this._debugID !== 0) { | ||
15587 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render'); | ||
15588 | } | ||
15589 | } | ||
15590 | instanceOrElement = Component(publicProps, publicContext, updateQueue); | ||
15591 | if (process.env.NODE_ENV !== 'production') { | ||
15592 | if (this._debugID !== 0) { | ||
15593 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render'); | ||
15594 | } | ||
15595 | } | ||
15596 | } | 15394 | } |
15597 | return instanceOrElement; | ||
15598 | }, | 15395 | }, |
15599 | 15396 | ||
15600 | performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { | 15397 | performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { |
@@ -15603,11 +15400,6 @@ | |||
15603 | try { | 15400 | try { |
15604 | markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); | 15401 | markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); |
15605 | } catch (e) { | 15402 | } catch (e) { |
15606 | if (process.env.NODE_ENV !== 'production') { | ||
15607 | if (this._debugID !== 0) { | ||
15608 | ReactInstrumentation.debugTool.onError(); | ||
15609 | } | ||
15610 | } | ||
15611 | // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint | 15403 | // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint |
15612 | transaction.rollback(checkpoint); | 15404 | transaction.rollback(checkpoint); |
15613 | this._instance.unstable_handleError(e); | 15405 | this._instance.unstable_handleError(e); |
@@ -15628,17 +15420,19 @@ | |||
15628 | 15420 | ||
15629 | performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { | 15421 | performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { |
15630 | var inst = this._instance; | 15422 | var inst = this._instance; |
15423 | |||
15424 | var debugID = 0; | ||
15425 | if (process.env.NODE_ENV !== 'production') { | ||
15426 | debugID = this._debugID; | ||
15427 | } | ||
15428 | |||
15631 | if (inst.componentWillMount) { | 15429 | if (inst.componentWillMount) { |
15632 | if (process.env.NODE_ENV !== 'production') { | 15430 | if (process.env.NODE_ENV !== 'production') { |
15633 | if (this._debugID !== 0) { | 15431 | measureLifeCyclePerf(function () { |
15634 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillMount'); | 15432 | return inst.componentWillMount(); |
15635 | } | 15433 | }, debugID, 'componentWillMount'); |
15636 | } | 15434 | } else { |
15637 | inst.componentWillMount(); | 15435 | inst.componentWillMount(); |
15638 | if (process.env.NODE_ENV !== 'production') { | ||
15639 | if (this._debugID !== 0) { | ||
15640 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillMount'); | ||
15641 | } | ||
15642 | } | 15436 | } |
15643 | // When mounting, calls to `setState` by `componentWillMount` will set | 15437 | // When mounting, calls to `setState` by `componentWillMount` will set |
15644 | // `this._pendingStateQueue` without triggering a re-render. | 15438 | // `this._pendingStateQueue` without triggering a re-render. |
@@ -15657,17 +15451,13 @@ | |||
15657 | var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ | 15451 | var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ |
15658 | ); | 15452 | ); |
15659 | this._renderedComponent = child; | 15453 | this._renderedComponent = child; |
15660 | if (process.env.NODE_ENV !== 'production') { | ||
15661 | if (child._debugID !== 0 && this._debugID !== 0) { | ||
15662 | ReactInstrumentation.debugTool.onSetParent(child._debugID, this._debugID); | ||
15663 | } | ||
15664 | } | ||
15665 | 15454 | ||
15666 | var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context)); | 15455 | var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID); |
15667 | 15456 | ||
15668 | if (process.env.NODE_ENV !== 'production') { | 15457 | if (process.env.NODE_ENV !== 'production') { |
15669 | if (this._debugID !== 0) { | 15458 | if (debugID !== 0) { |
15670 | ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []); | 15459 | var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; |
15460 | ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); | ||
15671 | } | 15461 | } |
15672 | } | 15462 | } |
15673 | 15463 | ||
@@ -15688,24 +15478,22 @@ | |||
15688 | if (!this._renderedComponent) { | 15478 | if (!this._renderedComponent) { |
15689 | return; | 15479 | return; |
15690 | } | 15480 | } |
15481 | |||
15691 | var inst = this._instance; | 15482 | var inst = this._instance; |
15692 | 15483 | ||
15693 | if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) { | 15484 | if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) { |
15694 | inst._calledComponentWillUnmount = true; | 15485 | inst._calledComponentWillUnmount = true; |
15695 | if (process.env.NODE_ENV !== 'production') { | 15486 | |
15696 | if (this._debugID !== 0) { | ||
15697 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUnmount'); | ||
15698 | } | ||
15699 | } | ||
15700 | if (safely) { | 15487 | if (safely) { |
15701 | var name = this.getName() + '.componentWillUnmount()'; | 15488 | var name = this.getName() + '.componentWillUnmount()'; |
15702 | ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst)); | 15489 | ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst)); |
15703 | } else { | 15490 | } else { |
15704 | inst.componentWillUnmount(); | 15491 | if (process.env.NODE_ENV !== 'production') { |
15705 | } | 15492 | measureLifeCyclePerf(function () { |
15706 | if (process.env.NODE_ENV !== 'production') { | 15493 | return inst.componentWillUnmount(); |
15707 | if (this._debugID !== 0) { | 15494 | }, this._debugID, 'componentWillUnmount'); |
15708 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUnmount'); | 15495 | } else { |
15496 | inst.componentWillUnmount(); | ||
15709 | } | 15497 | } |
15710 | } | 15498 | } |
15711 | } | 15499 | } |
@@ -15729,7 +15517,7 @@ | |||
15729 | // These fields do not really need to be reset since this object is no | 15517 | // These fields do not really need to be reset since this object is no |
15730 | // longer accessible. | 15518 | // longer accessible. |
15731 | this._context = null; | 15519 | this._context = null; |
15732 | this._rootNodeID = null; | 15520 | this._rootNodeID = 0; |
15733 | this._topLevelWrapper = null; | 15521 | this._topLevelWrapper = null; |
15734 | 15522 | ||
15735 | // Delete the reference from the instance to this internal representation | 15523 | // Delete the reference from the instance to this internal representation |
@@ -15792,13 +15580,21 @@ | |||
15792 | _processChildContext: function (currentContext) { | 15580 | _processChildContext: function (currentContext) { |
15793 | var Component = this._currentElement.type; | 15581 | var Component = this._currentElement.type; |
15794 | var inst = this._instance; | 15582 | var inst = this._instance; |
15795 | if (process.env.NODE_ENV !== 'production') { | 15583 | var childContext; |
15796 | ReactInstrumentation.debugTool.onBeginProcessingChildContext(); | 15584 | |
15797 | } | 15585 | if (inst.getChildContext) { |
15798 | var childContext = inst.getChildContext && inst.getChildContext(); | 15586 | if (process.env.NODE_ENV !== 'production') { |
15799 | if (process.env.NODE_ENV !== 'production') { | 15587 | ReactInstrumentation.debugTool.onBeginProcessingChildContext(); |
15800 | ReactInstrumentation.debugTool.onEndProcessingChildContext(); | 15588 | try { |
15589 | childContext = inst.getChildContext(); | ||
15590 | } finally { | ||
15591 | ReactInstrumentation.debugTool.onEndProcessingChildContext(); | ||
15592 | } | ||
15593 | } else { | ||
15594 | childContext = inst.getChildContext(); | ||
15595 | } | ||
15801 | } | 15596 | } |
15597 | |||
15802 | if (childContext) { | 15598 | if (childContext) { |
15803 | !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0; | 15599 | !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0; |
15804 | if (process.env.NODE_ENV !== 'production') { | 15600 | if (process.env.NODE_ENV !== 'production') { |
@@ -15893,15 +15689,11 @@ | |||
15893 | // immediately reconciled instead of waiting for the next batch. | 15689 | // immediately reconciled instead of waiting for the next batch. |
15894 | if (willReceive && inst.componentWillReceiveProps) { | 15690 | if (willReceive && inst.componentWillReceiveProps) { |
15895 | if (process.env.NODE_ENV !== 'production') { | 15691 | if (process.env.NODE_ENV !== 'production') { |
15896 | if (this._debugID !== 0) { | 15692 | measureLifeCyclePerf(function () { |
15897 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillReceiveProps'); | 15693 | return inst.componentWillReceiveProps(nextProps, nextContext); |
15898 | } | 15694 | }, this._debugID, 'componentWillReceiveProps'); |
15899 | } | 15695 | } else { |
15900 | inst.componentWillReceiveProps(nextProps, nextContext); | 15696 | inst.componentWillReceiveProps(nextProps, nextContext); |
15901 | if (process.env.NODE_ENV !== 'production') { | ||
15902 | if (this._debugID !== 0) { | ||
15903 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillReceiveProps'); | ||
15904 | } | ||
15905 | } | 15697 | } |
15906 | } | 15698 | } |
15907 | 15699 | ||
@@ -15911,15 +15703,11 @@ | |||
15911 | if (!this._pendingForceUpdate) { | 15703 | if (!this._pendingForceUpdate) { |
15912 | if (inst.shouldComponentUpdate) { | 15704 | if (inst.shouldComponentUpdate) { |
15913 | if (process.env.NODE_ENV !== 'production') { | 15705 | if (process.env.NODE_ENV !== 'production') { |
15914 | if (this._debugID !== 0) { | 15706 | shouldUpdate = measureLifeCyclePerf(function () { |
15915 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'shouldComponentUpdate'); | 15707 | return inst.shouldComponentUpdate(nextProps, nextState, nextContext); |
15916 | } | 15708 | }, this._debugID, 'shouldComponentUpdate'); |
15917 | } | 15709 | } else { |
15918 | shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext); | 15710 | shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext); |
15919 | if (process.env.NODE_ENV !== 'production') { | ||
15920 | if (this._debugID !== 0) { | ||
15921 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'shouldComponentUpdate'); | ||
15922 | } | ||
15923 | } | 15711 | } |
15924 | } else { | 15712 | } else { |
15925 | if (this._compositeType === CompositeTypes.PureClass) { | 15713 | if (this._compositeType === CompositeTypes.PureClass) { |
@@ -16001,15 +15789,11 @@ | |||
16001 | 15789 | ||
16002 | if (inst.componentWillUpdate) { | 15790 | if (inst.componentWillUpdate) { |
16003 | if (process.env.NODE_ENV !== 'production') { | 15791 | if (process.env.NODE_ENV !== 'production') { |
16004 | if (this._debugID !== 0) { | 15792 | measureLifeCyclePerf(function () { |
16005 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUpdate'); | 15793 | return inst.componentWillUpdate(nextProps, nextState, nextContext); |
16006 | } | 15794 | }, this._debugID, 'componentWillUpdate'); |
16007 | } | 15795 | } else { |
16008 | inst.componentWillUpdate(nextProps, nextState, nextContext); | 15796 | inst.componentWillUpdate(nextProps, nextState, nextContext); |
16009 | if (process.env.NODE_ENV !== 'production') { | ||
16010 | if (this._debugID !== 0) { | ||
16011 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUpdate'); | ||
16012 | } | ||
16013 | } | 15797 | } |
16014 | } | 15798 | } |
16015 | 15799 | ||
@@ -16023,20 +15807,13 @@ | |||
16023 | 15807 | ||
16024 | if (hasComponentDidUpdate) { | 15808 | if (hasComponentDidUpdate) { |
16025 | if (process.env.NODE_ENV !== 'production') { | 15809 | if (process.env.NODE_ENV !== 'production') { |
16026 | transaction.getReactMountReady().enqueue(invokeComponentDidUpdateWithTimer.bind(this, prevProps, prevState, prevContext), this); | 15810 | transaction.getReactMountReady().enqueue(function () { |
15811 | measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate'); | ||
15812 | }); | ||
16027 | } else { | 15813 | } else { |
16028 | transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); | 15814 | transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); |
16029 | } | 15815 | } |
16030 | } | 15816 | } |
16031 | |||
16032 | if (process.env.NODE_ENV !== 'production') { | ||
16033 | if (this._debugID) { | ||
16034 | var callback = function () { | ||
16035 | return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID); | ||
16036 | }; | ||
16037 | transaction.getReactMountReady().enqueue(callback, this); | ||
16038 | } | ||
16039 | } | ||
16040 | }, | 15817 | }, |
16041 | 15818 | ||
16042 | /** | 15819 | /** |
@@ -16049,6 +15826,12 @@ | |||
16049 | var prevComponentInstance = this._renderedComponent; | 15826 | var prevComponentInstance = this._renderedComponent; |
16050 | var prevRenderedElement = prevComponentInstance._currentElement; | 15827 | var prevRenderedElement = prevComponentInstance._currentElement; |
16051 | var nextRenderedElement = this._renderValidatedComponent(); | 15828 | var nextRenderedElement = this._renderValidatedComponent(); |
15829 | |||
15830 | var debugID = 0; | ||
15831 | if (process.env.NODE_ENV !== 'production') { | ||
15832 | debugID = this._debugID; | ||
15833 | } | ||
15834 | |||
16052 | if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { | 15835 | if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { |
16053 | ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); | 15836 | ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); |
16054 | } else { | 15837 | } else { |
@@ -16060,17 +15843,13 @@ | |||
16060 | var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ | 15843 | var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ |
16061 | ); | 15844 | ); |
16062 | this._renderedComponent = child; | 15845 | this._renderedComponent = child; |
16063 | if (process.env.NODE_ENV !== 'production') { | ||
16064 | if (child._debugID !== 0 && this._debugID !== 0) { | ||
16065 | ReactInstrumentation.debugTool.onSetParent(child._debugID, this._debugID); | ||
16066 | } | ||
16067 | } | ||
16068 | 15846 | ||
16069 | var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context)); | 15847 | var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID); |
16070 | 15848 | ||
16071 | if (process.env.NODE_ENV !== 'production') { | 15849 | if (process.env.NODE_ENV !== 'production') { |
16072 | if (this._debugID !== 0) { | 15850 | if (debugID !== 0) { |
16073 | ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []); | 15851 | var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; |
15852 | ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); | ||
16074 | } | 15853 | } |
16075 | } | 15854 | } |
16076 | 15855 | ||
@@ -16092,17 +15871,14 @@ | |||
16092 | */ | 15871 | */ |
16093 | _renderValidatedComponentWithoutOwnerOrContext: function () { | 15872 | _renderValidatedComponentWithoutOwnerOrContext: function () { |
16094 | var inst = this._instance; | 15873 | var inst = this._instance; |
15874 | var renderedComponent; | ||
16095 | 15875 | ||
16096 | if (process.env.NODE_ENV !== 'production') { | 15876 | if (process.env.NODE_ENV !== 'production') { |
16097 | if (this._debugID !== 0) { | 15877 | renderedComponent = measureLifeCyclePerf(function () { |
16098 | ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render'); | 15878 | return inst.render(); |
16099 | } | 15879 | }, this._debugID, 'render'); |
16100 | } | 15880 | } else { |
16101 | var renderedComponent = inst.render(); | 15881 | renderedComponent = inst.render(); |
16102 | if (process.env.NODE_ENV !== 'production') { | ||
16103 | if (this._debugID !== 0) { | ||
16104 | ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render'); | ||
16105 | } | ||
16106 | } | 15882 | } |
16107 | 15883 | ||
16108 | if (process.env.NODE_ENV !== 'production') { | 15884 | if (process.env.NODE_ENV !== 'production') { |
@@ -16153,7 +15929,7 @@ | |||
16153 | var publicComponentInstance = component.getPublicInstance(); | 15929 | var publicComponentInstance = component.getPublicInstance(); |
16154 | if (process.env.NODE_ENV !== 'production') { | 15930 | if (process.env.NODE_ENV !== 'production') { |
16155 | var componentName = component && component.getName ? component.getName() : 'a component'; | 15931 | var componentName = component && component.getName ? component.getName() : 'a component'; |
16156 | process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0; | 15932 | process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0; |
16157 | } | 15933 | } |
16158 | var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; | 15934 | var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; |
16159 | refs[ref] = publicComponentInstance; | 15935 | refs[ref] = publicComponentInstance; |
@@ -16214,7 +15990,7 @@ | |||
16214 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 15990 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
16215 | 15991 | ||
16216 | /***/ }, | 15992 | /***/ }, |
16217 | /* 130 */ | 15993 | /* 125 */ |
16218 | /***/ function(module, exports, __webpack_require__) { | 15994 | /***/ function(module, exports, __webpack_require__) { |
16219 | 15995 | ||
16220 | /* WEBPACK VAR INJECTION */(function(process) {/** | 15996 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -16260,7 +16036,7 @@ | |||
16260 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 16036 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
16261 | 16037 | ||
16262 | /***/ }, | 16038 | /***/ }, |
16263 | /* 131 */ | 16039 | /* 126 */ |
16264 | /***/ function(module, exports) { | 16040 | /***/ function(module, exports) { |
16265 | 16041 | ||
16266 | /** | 16042 | /** |
@@ -16290,7 +16066,8 @@ | |||
16290 | if (x === y) { | 16066 | if (x === y) { |
16291 | // Steps 1-5, 7-10 | 16067 | // Steps 1-5, 7-10 |
16292 | // Steps 6.b-6.e: +0 != -0 | 16068 | // Steps 6.b-6.e: +0 != -0 |
16293 | return x !== 0 || 1 / x === 1 / y; | 16069 | // Added the nonzero y check to make Flow happy, but it is redundant |
16070 | return x !== 0 || y !== 0 || 1 / x === 1 / y; | ||
16294 | } else { | 16071 | } else { |
16295 | // Step 6.a: NaN == NaN | 16072 | // Step 6.a: NaN == NaN |
16296 | return x !== x && y !== y; | 16073 | return x !== x && y !== y; |
@@ -16331,7 +16108,7 @@ | |||
16331 | module.exports = shallowEqual; | 16108 | module.exports = shallowEqual; |
16332 | 16109 | ||
16333 | /***/ }, | 16110 | /***/ }, |
16334 | /* 132 */ | 16111 | /* 127 */ |
16335 | /***/ function(module, exports) { | 16112 | /***/ function(module, exports) { |
16336 | 16113 | ||
16337 | /** | 16114 | /** |
@@ -16378,7 +16155,7 @@ | |||
16378 | module.exports = shouldUpdateReactComponent; | 16155 | module.exports = shouldUpdateReactComponent; |
16379 | 16156 | ||
16380 | /***/ }, | 16157 | /***/ }, |
16381 | /* 133 */ | 16158 | /* 128 */ |
16382 | /***/ function(module, exports) { | 16159 | /***/ function(module, exports) { |
16383 | 16160 | ||
16384 | /** | 16161 | /** |
@@ -16413,7 +16190,7 @@ | |||
16413 | module.exports = ReactEmptyComponent; | 16190 | module.exports = ReactEmptyComponent; |
16414 | 16191 | ||
16415 | /***/ }, | 16192 | /***/ }, |
16416 | /* 134 */ | 16193 | /* 129 */ |
16417 | /***/ function(module, exports, __webpack_require__) { | 16194 | /***/ function(module, exports, __webpack_require__) { |
16418 | 16195 | ||
16419 | /* WEBPACK VAR INJECTION */(function(process) {/** | 16196 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -16495,7 +16272,7 @@ | |||
16495 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 16272 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
16496 | 16273 | ||
16497 | /***/ }, | 16274 | /***/ }, |
16498 | /* 135 */ | 16275 | /* 130 */ |
16499 | /***/ function(module, exports, __webpack_require__) { | 16276 | /***/ function(module, exports, __webpack_require__) { |
16500 | 16277 | ||
16501 | /* WEBPACK VAR INJECTION */(function(process) {/** | 16278 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -16516,7 +16293,7 @@ | |||
16516 | var traverseAllChildren = __webpack_require__(16); | 16293 | var traverseAllChildren = __webpack_require__(16); |
16517 | var warning = __webpack_require__(13); | 16294 | var warning = __webpack_require__(13); |
16518 | 16295 | ||
16519 | var ReactComponentTreeDevtool; | 16296 | var ReactComponentTreeHook; |
16520 | 16297 | ||
16521 | if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { | 16298 | if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { |
16522 | // Temporary hack. | 16299 | // Temporary hack. |
@@ -16524,7 +16301,7 @@ | |||
16524 | // https://github.com/facebook/react/issues/7240 | 16301 | // https://github.com/facebook/react/issues/7240 |
16525 | // Remove the inline requires when we don't need them anymore: | 16302 | // Remove the inline requires when we don't need them anymore: |
16526 | // https://github.com/facebook/react/pull/7178 | 16303 | // https://github.com/facebook/react/pull/7178 |
16527 | ReactComponentTreeDevtool = __webpack_require__(31); | 16304 | ReactComponentTreeHook = __webpack_require__(30); |
16528 | } | 16305 | } |
16529 | 16306 | ||
16530 | /** | 16307 | /** |
@@ -16539,10 +16316,12 @@ | |||
16539 | var result = traverseContext; | 16316 | var result = traverseContext; |
16540 | var keyUnique = result[name] === undefined; | 16317 | var keyUnique = result[name] === undefined; |
16541 | if (process.env.NODE_ENV !== 'production') { | 16318 | if (process.env.NODE_ENV !== 'production') { |
16542 | if (!ReactComponentTreeDevtool) { | 16319 | if (!ReactComponentTreeHook) { |
16543 | ReactComponentTreeDevtool = __webpack_require__(31); | 16320 | ReactComponentTreeHook = __webpack_require__(30); |
16321 | } | ||
16322 | if (!keyUnique) { | ||
16323 | process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; | ||
16544 | } | 16324 | } |
16545 | process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeDevtool.getStackAddendumByID(selfDebugID)) : void 0; | ||
16546 | } | 16325 | } |
16547 | if (keyUnique && child != null) { | 16326 | if (keyUnique && child != null) { |
16548 | result[name] = child; | 16327 | result[name] = child; |
@@ -16575,7 +16354,7 @@ | |||
16575 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 16354 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
16576 | 16355 | ||
16577 | /***/ }, | 16356 | /***/ }, |
16578 | /* 136 */ | 16357 | /* 131 */ |
16579 | /***/ function(module, exports, __webpack_require__) { | 16358 | /***/ function(module, exports, __webpack_require__) { |
16580 | 16359 | ||
16581 | /* WEBPACK VAR INJECTION */(function(process) {/** | 16360 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -16594,9 +16373,9 @@ | |||
16594 | var _assign = __webpack_require__(6); | 16373 | var _assign = __webpack_require__(6); |
16595 | 16374 | ||
16596 | var PooledClass = __webpack_require__(8); | 16375 | var PooledClass = __webpack_require__(8); |
16597 | var Transaction = __webpack_require__(72); | 16376 | var Transaction = __webpack_require__(71); |
16598 | var ReactInstrumentation = __webpack_require__(65); | 16377 | var ReactInstrumentation = __webpack_require__(64); |
16599 | var ReactServerUpdateQueue = __webpack_require__(137); | 16378 | var ReactServerUpdateQueue = __webpack_require__(132); |
16600 | 16379 | ||
16601 | /** | 16380 | /** |
16602 | * Executed within the scope of the `Transaction` instance. Consider these as | 16381 | * Executed within the scope of the `Transaction` instance. Consider these as |
@@ -16671,7 +16450,7 @@ | |||
16671 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 16450 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
16672 | 16451 | ||
16673 | /***/ }, | 16452 | /***/ }, |
16674 | /* 137 */ | 16453 | /* 132 */ |
16675 | /***/ function(module, exports, __webpack_require__) { | 16454 | /***/ function(module, exports, __webpack_require__) { |
16676 | 16455 | ||
16677 | /* WEBPACK VAR INJECTION */(function(process) {/** | 16456 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -16690,8 +16469,8 @@ | |||
16690 | 16469 | ||
16691 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | 16470 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
16692 | 16471 | ||
16693 | var ReactUpdateQueue = __webpack_require__(138); | 16472 | var ReactUpdateQueue = __webpack_require__(133); |
16694 | var Transaction = __webpack_require__(72); | 16473 | var Transaction = __webpack_require__(71); |
16695 | var warning = __webpack_require__(13); | 16474 | var warning = __webpack_require__(13); |
16696 | 16475 | ||
16697 | function warnNoop(publicInstance, callerName) { | 16476 | function warnNoop(publicInstance, callerName) { |
@@ -16818,7 +16597,7 @@ | |||
16818 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 16597 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
16819 | 16598 | ||
16820 | /***/ }, | 16599 | /***/ }, |
16821 | /* 138 */ | 16600 | /* 133 */ |
16822 | /***/ function(module, exports, __webpack_require__) { | 16601 | /***/ function(module, exports, __webpack_require__) { |
16823 | 16602 | ||
16824 | /* WEBPACK VAR INJECTION */(function(process) {/** | 16603 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -16837,9 +16616,9 @@ | |||
16837 | var _prodInvariant = __webpack_require__(9); | 16616 | var _prodInvariant = __webpack_require__(9); |
16838 | 16617 | ||
16839 | var ReactCurrentOwner = __webpack_require__(12); | 16618 | var ReactCurrentOwner = __webpack_require__(12); |
16840 | var ReactInstanceMap = __webpack_require__(126); | 16619 | var ReactInstanceMap = __webpack_require__(121); |
16841 | var ReactInstrumentation = __webpack_require__(65); | 16620 | var ReactInstrumentation = __webpack_require__(64); |
16842 | var ReactUpdates = __webpack_require__(59); | 16621 | var ReactUpdates = __webpack_require__(58); |
16843 | 16622 | ||
16844 | var invariant = __webpack_require__(10); | 16623 | var invariant = __webpack_require__(10); |
16845 | var warning = __webpack_require__(13); | 16624 | var warning = __webpack_require__(13); |
@@ -17050,7 +16829,7 @@ | |||
17050 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 16829 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
17051 | 16830 | ||
17052 | /***/ }, | 16831 | /***/ }, |
17053 | /* 139 */ | 16832 | /* 134 */ |
17054 | /***/ function(module, exports, __webpack_require__) { | 16833 | /***/ function(module, exports, __webpack_require__) { |
17055 | 16834 | ||
17056 | /* WEBPACK VAR INJECTION */(function(process) {/** | 16835 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -17342,11 +17121,16 @@ | |||
17342 | 17121 | ||
17343 | var didWarn = {}; | 17122 | var didWarn = {}; |
17344 | 17123 | ||
17345 | validateDOMNesting = function (childTag, childInstance, ancestorInfo) { | 17124 | validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) { |
17346 | ancestorInfo = ancestorInfo || emptyAncestorInfo; | 17125 | ancestorInfo = ancestorInfo || emptyAncestorInfo; |
17347 | var parentInfo = ancestorInfo.current; | 17126 | var parentInfo = ancestorInfo.current; |
17348 | var parentTag = parentInfo && parentInfo.tag; | 17127 | var parentTag = parentInfo && parentInfo.tag; |
17349 | 17128 | ||
17129 | if (childText != null) { | ||
17130 | process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0; | ||
17131 | childTag = '#text'; | ||
17132 | } | ||
17133 | |||
17350 | var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; | 17134 | var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; |
17351 | var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); | 17135 | var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); |
17352 | var problematic = invalidParent || invalidAncestor; | 17136 | var problematic = invalidParent || invalidAncestor; |
@@ -17394,7 +17178,15 @@ | |||
17394 | didWarn[warnKey] = true; | 17178 | didWarn[warnKey] = true; |
17395 | 17179 | ||
17396 | var tagDisplayName = childTag; | 17180 | var tagDisplayName = childTag; |
17397 | if (childTag !== '#text') { | 17181 | var whitespaceInfo = ''; |
17182 | if (childTag === '#text') { | ||
17183 | if (/\S/.test(childText)) { | ||
17184 | tagDisplayName = 'Text nodes'; | ||
17185 | } else { | ||
17186 | tagDisplayName = 'Whitespace text nodes'; | ||
17187 | whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.'; | ||
17188 | } | ||
17189 | } else { | ||
17398 | tagDisplayName = '<' + childTag + '>'; | 17190 | tagDisplayName = '<' + childTag + '>'; |
17399 | } | 17191 | } |
17400 | 17192 | ||
@@ -17403,7 +17195,7 @@ | |||
17403 | if (ancestorTag === 'table' && childTag === 'tr') { | 17195 | if (ancestorTag === 'table' && childTag === 'tr') { |
17404 | info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; | 17196 | info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; |
17405 | } | 17197 | } |
17406 | process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>. ' + 'See %s.%s', tagDisplayName, ancestorTag, ownerInfo, info) : void 0; | 17198 | process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0; |
17407 | } else { | 17199 | } else { |
17408 | process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0; | 17200 | process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0; |
17409 | } | 17201 | } |
@@ -17425,7 +17217,7 @@ | |||
17425 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 17217 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
17426 | 17218 | ||
17427 | /***/ }, | 17219 | /***/ }, |
17428 | /* 140 */ | 17220 | /* 135 */ |
17429 | /***/ function(module, exports, __webpack_require__) { | 17221 | /***/ function(module, exports, __webpack_require__) { |
17430 | 17222 | ||
17431 | /** | 17223 | /** |
@@ -17443,8 +17235,8 @@ | |||
17443 | 17235 | ||
17444 | var _assign = __webpack_require__(6); | 17236 | var _assign = __webpack_require__(6); |
17445 | 17237 | ||
17446 | var DOMLazyTree = __webpack_require__(85); | 17238 | var DOMLazyTree = __webpack_require__(84); |
17447 | var ReactDOMComponentTree = __webpack_require__(39); | 17239 | var ReactDOMComponentTree = __webpack_require__(38); |
17448 | 17240 | ||
17449 | var ReactDOMEmptyComponent = function (instantiate) { | 17241 | var ReactDOMEmptyComponent = function (instantiate) { |
17450 | // ReactCompositeComponent uses this: | 17242 | // ReactCompositeComponent uses this: |
@@ -17453,7 +17245,7 @@ | |||
17453 | this._hostNode = null; | 17245 | this._hostNode = null; |
17454 | this._hostParent = null; | 17246 | this._hostParent = null; |
17455 | this._hostContainerInfo = null; | 17247 | this._hostContainerInfo = null; |
17456 | this._domID = null; | 17248 | this._domID = 0; |
17457 | }; | 17249 | }; |
17458 | _assign(ReactDOMEmptyComponent.prototype, { | 17250 | _assign(ReactDOMEmptyComponent.prototype, { |
17459 | mountComponent: function (transaction, hostParent, hostContainerInfo, context) { | 17251 | mountComponent: function (transaction, hostParent, hostContainerInfo, context) { |
@@ -17490,7 +17282,7 @@ | |||
17490 | module.exports = ReactDOMEmptyComponent; | 17282 | module.exports = ReactDOMEmptyComponent; |
17491 | 17283 | ||
17492 | /***/ }, | 17284 | /***/ }, |
17493 | /* 141 */ | 17285 | /* 136 */ |
17494 | /***/ function(module, exports, __webpack_require__) { | 17286 | /***/ function(module, exports, __webpack_require__) { |
17495 | 17287 | ||
17496 | /* WEBPACK VAR INJECTION */(function(process) {/** | 17288 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -17632,7 +17424,7 @@ | |||
17632 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 17424 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
17633 | 17425 | ||
17634 | /***/ }, | 17426 | /***/ }, |
17635 | /* 142 */ | 17427 | /* 137 */ |
17636 | /***/ function(module, exports, __webpack_require__) { | 17428 | /***/ function(module, exports, __webpack_require__) { |
17637 | 17429 | ||
17638 | /* WEBPACK VAR INJECTION */(function(process) {/** | 17430 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -17651,14 +17443,13 @@ | |||
17651 | var _prodInvariant = __webpack_require__(9), | 17443 | var _prodInvariant = __webpack_require__(9), |
17652 | _assign = __webpack_require__(6); | 17444 | _assign = __webpack_require__(6); |
17653 | 17445 | ||
17654 | var DOMChildrenOperations = __webpack_require__(84); | 17446 | var DOMChildrenOperations = __webpack_require__(83); |
17655 | var DOMLazyTree = __webpack_require__(85); | 17447 | var DOMLazyTree = __webpack_require__(84); |
17656 | var ReactDOMComponentTree = __webpack_require__(39); | 17448 | var ReactDOMComponentTree = __webpack_require__(38); |
17657 | var ReactInstrumentation = __webpack_require__(65); | ||
17658 | 17449 | ||
17659 | var escapeTextContentForBrowser = __webpack_require__(90); | 17450 | var escapeTextContentForBrowser = __webpack_require__(89); |
17660 | var invariant = __webpack_require__(10); | 17451 | var invariant = __webpack_require__(10); |
17661 | var validateDOMNesting = __webpack_require__(139); | 17452 | var validateDOMNesting = __webpack_require__(134); |
17662 | 17453 | ||
17663 | /** | 17454 | /** |
17664 | * Text nodes violate a couple assumptions that React makes about components: | 17455 | * Text nodes violate a couple assumptions that React makes about components: |
@@ -17684,7 +17475,7 @@ | |||
17684 | this._hostParent = null; | 17475 | this._hostParent = null; |
17685 | 17476 | ||
17686 | // Properties | 17477 | // Properties |
17687 | this._domID = null; | 17478 | this._domID = 0; |
17688 | this._mountIndex = 0; | 17479 | this._mountIndex = 0; |
17689 | this._closingComment = null; | 17480 | this._closingComment = null; |
17690 | this._commentNodes = null; | 17481 | this._commentNodes = null; |
@@ -17702,8 +17493,6 @@ | |||
17702 | */ | 17493 | */ |
17703 | mountComponent: function (transaction, hostParent, hostContainerInfo, context) { | 17494 | mountComponent: function (transaction, hostParent, hostContainerInfo, context) { |
17704 | if (process.env.NODE_ENV !== 'production') { | 17495 | if (process.env.NODE_ENV !== 'production') { |
17705 | ReactInstrumentation.debugTool.onSetText(this._debugID, this._stringText); | ||
17706 | |||
17707 | var parentInfo; | 17496 | var parentInfo; |
17708 | if (hostParent != null) { | 17497 | if (hostParent != null) { |
17709 | parentInfo = hostParent._ancestorInfo; | 17498 | parentInfo = hostParent._ancestorInfo; |
@@ -17713,7 +17502,7 @@ | |||
17713 | if (parentInfo) { | 17502 | if (parentInfo) { |
17714 | // parentInfo should always be present except for the top-level | 17503 | // parentInfo should always be present except for the top-level |
17715 | // component when server rendering | 17504 | // component when server rendering |
17716 | validateDOMNesting('#text', this, parentInfo); | 17505 | validateDOMNesting(null, this._stringText, this, parentInfo); |
17717 | } | 17506 | } |
17718 | } | 17507 | } |
17719 | 17508 | ||
@@ -17767,10 +17556,6 @@ | |||
17767 | this._stringText = nextStringText; | 17556 | this._stringText = nextStringText; |
17768 | var commentNodes = this.getHostNode(); | 17557 | var commentNodes = this.getHostNode(); |
17769 | DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText); | 17558 | DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText); |
17770 | |||
17771 | if (process.env.NODE_ENV !== 'production') { | ||
17772 | ReactInstrumentation.debugTool.onSetText(this._debugID, nextStringText); | ||
17773 | } | ||
17774 | } | 17559 | } |
17775 | } | 17560 | } |
17776 | }, | 17561 | }, |
@@ -17809,7 +17594,7 @@ | |||
17809 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 17594 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
17810 | 17595 | ||
17811 | /***/ }, | 17596 | /***/ }, |
17812 | /* 143 */ | 17597 | /* 138 */ |
17813 | /***/ function(module, exports, __webpack_require__) { | 17598 | /***/ function(module, exports, __webpack_require__) { |
17814 | 17599 | ||
17815 | /** | 17600 | /** |
@@ -17827,8 +17612,8 @@ | |||
17827 | 17612 | ||
17828 | var _assign = __webpack_require__(6); | 17613 | var _assign = __webpack_require__(6); |
17829 | 17614 | ||
17830 | var ReactUpdates = __webpack_require__(59); | 17615 | var ReactUpdates = __webpack_require__(58); |
17831 | var Transaction = __webpack_require__(72); | 17616 | var Transaction = __webpack_require__(71); |
17832 | 17617 | ||
17833 | var emptyFunction = __webpack_require__(14); | 17618 | var emptyFunction = __webpack_require__(14); |
17834 | 17619 | ||
@@ -17882,7 +17667,7 @@ | |||
17882 | module.exports = ReactDefaultBatchingStrategy; | 17667 | module.exports = ReactDefaultBatchingStrategy; |
17883 | 17668 | ||
17884 | /***/ }, | 17669 | /***/ }, |
17885 | /* 144 */ | 17670 | /* 139 */ |
17886 | /***/ function(module, exports, __webpack_require__) { | 17671 | /***/ function(module, exports, __webpack_require__) { |
17887 | 17672 | ||
17888 | /** | 17673 | /** |
@@ -17900,14 +17685,14 @@ | |||
17900 | 17685 | ||
17901 | var _assign = __webpack_require__(6); | 17686 | var _assign = __webpack_require__(6); |
17902 | 17687 | ||
17903 | var EventListener = __webpack_require__(145); | 17688 | var EventListener = __webpack_require__(140); |
17904 | var ExecutionEnvironment = __webpack_require__(52); | 17689 | var ExecutionEnvironment = __webpack_require__(51); |
17905 | var PooledClass = __webpack_require__(8); | 17690 | var PooledClass = __webpack_require__(8); |
17906 | var ReactDOMComponentTree = __webpack_require__(39); | 17691 | var ReactDOMComponentTree = __webpack_require__(38); |
17907 | var ReactUpdates = __webpack_require__(59); | 17692 | var ReactUpdates = __webpack_require__(58); |
17908 | 17693 | ||
17909 | var getEventTarget = __webpack_require__(73); | 17694 | var getEventTarget = __webpack_require__(72); |
17910 | var getUnboundedScrollPosition = __webpack_require__(146); | 17695 | var getUnboundedScrollPosition = __webpack_require__(141); |
17911 | 17696 | ||
17912 | /** | 17697 | /** |
17913 | * Find the deepest React component completely containing the root of the | 17698 | * Find the deepest React component completely containing the root of the |
@@ -18044,7 +17829,7 @@ | |||
18044 | module.exports = ReactEventListener; | 17829 | module.exports = ReactEventListener; |
18045 | 17830 | ||
18046 | /***/ }, | 17831 | /***/ }, |
18047 | /* 145 */ | 17832 | /* 140 */ |
18048 | /***/ function(module, exports, __webpack_require__) { | 17833 | /***/ function(module, exports, __webpack_require__) { |
18049 | 17834 | ||
18050 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; | 17835 | /* WEBPACK VAR INJECTION */(function(process) {'use strict'; |
@@ -18133,7 +17918,7 @@ | |||
18133 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 17918 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
18134 | 17919 | ||
18135 | /***/ }, | 17920 | /***/ }, |
18136 | /* 146 */ | 17921 | /* 141 */ |
18137 | /***/ function(module, exports) { | 17922 | /***/ function(module, exports) { |
18138 | 17923 | ||
18139 | /** | 17924 | /** |
@@ -18176,7 +17961,7 @@ | |||
18176 | module.exports = getUnboundedScrollPosition; | 17961 | module.exports = getUnboundedScrollPosition; |
18177 | 17962 | ||
18178 | /***/ }, | 17963 | /***/ }, |
18179 | /* 147 */ | 17964 | /* 142 */ |
18180 | /***/ function(module, exports, __webpack_require__) { | 17965 | /***/ function(module, exports, __webpack_require__) { |
18181 | 17966 | ||
18182 | /** | 17967 | /** |
@@ -18192,15 +17977,15 @@ | |||
18192 | 17977 | ||
18193 | 'use strict'; | 17978 | 'use strict'; |
18194 | 17979 | ||
18195 | var DOMProperty = __webpack_require__(40); | 17980 | var DOMProperty = __webpack_require__(39); |
18196 | var EventPluginHub = __webpack_require__(46); | 17981 | var EventPluginHub = __webpack_require__(45); |
18197 | var EventPluginUtils = __webpack_require__(48); | 17982 | var EventPluginUtils = __webpack_require__(47); |
18198 | var ReactComponentEnvironment = __webpack_require__(125); | 17983 | var ReactComponentEnvironment = __webpack_require__(120); |
18199 | var ReactClass = __webpack_require__(23); | 17984 | var ReactClass = __webpack_require__(23); |
18200 | var ReactEmptyComponent = __webpack_require__(133); | 17985 | var ReactEmptyComponent = __webpack_require__(128); |
18201 | var ReactBrowserEventEmitter = __webpack_require__(114); | 17986 | var ReactBrowserEventEmitter = __webpack_require__(109); |
18202 | var ReactHostComponent = __webpack_require__(134); | 17987 | var ReactHostComponent = __webpack_require__(129); |
18203 | var ReactUpdates = __webpack_require__(59); | 17988 | var ReactUpdates = __webpack_require__(58); |
18204 | 17989 | ||
18205 | var ReactInjection = { | 17990 | var ReactInjection = { |
18206 | Component: ReactComponentEnvironment.injection, | 17991 | Component: ReactComponentEnvironment.injection, |
@@ -18217,7 +18002,7 @@ | |||
18217 | module.exports = ReactInjection; | 18002 | module.exports = ReactInjection; |
18218 | 18003 | ||
18219 | /***/ }, | 18004 | /***/ }, |
18220 | /* 148 */ | 18005 | /* 143 */ |
18221 | /***/ function(module, exports, __webpack_require__) { | 18006 | /***/ function(module, exports, __webpack_require__) { |
18222 | 18007 | ||
18223 | /* WEBPACK VAR INJECTION */(function(process) {/** | 18008 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -18235,13 +18020,13 @@ | |||
18235 | 18020 | ||
18236 | var _assign = __webpack_require__(6); | 18021 | var _assign = __webpack_require__(6); |
18237 | 18022 | ||
18238 | var CallbackQueue = __webpack_require__(60); | 18023 | var CallbackQueue = __webpack_require__(59); |
18239 | var PooledClass = __webpack_require__(8); | 18024 | var PooledClass = __webpack_require__(8); |
18240 | var ReactBrowserEventEmitter = __webpack_require__(114); | 18025 | var ReactBrowserEventEmitter = __webpack_require__(109); |
18241 | var ReactInputSelection = __webpack_require__(149); | 18026 | var ReactInputSelection = __webpack_require__(144); |
18242 | var ReactInstrumentation = __webpack_require__(65); | 18027 | var ReactInstrumentation = __webpack_require__(64); |
18243 | var Transaction = __webpack_require__(72); | 18028 | var Transaction = __webpack_require__(71); |
18244 | var ReactUpdateQueue = __webpack_require__(138); | 18029 | var ReactUpdateQueue = __webpack_require__(133); |
18245 | 18030 | ||
18246 | /** | 18031 | /** |
18247 | * Ensures that, when possible, the selection range (currently selected text | 18032 | * Ensures that, when possible, the selection range (currently selected text |
@@ -18401,7 +18186,7 @@ | |||
18401 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 18186 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
18402 | 18187 | ||
18403 | /***/ }, | 18188 | /***/ }, |
18404 | /* 149 */ | 18189 | /* 144 */ |
18405 | /***/ function(module, exports, __webpack_require__) { | 18190 | /***/ function(module, exports, __webpack_require__) { |
18406 | 18191 | ||
18407 | /** | 18192 | /** |
@@ -18417,11 +18202,11 @@ | |||
18417 | 18202 | ||
18418 | 'use strict'; | 18203 | 'use strict'; |
18419 | 18204 | ||
18420 | var ReactDOMSelection = __webpack_require__(150); | 18205 | var ReactDOMSelection = __webpack_require__(145); |
18421 | 18206 | ||
18422 | var containsNode = __webpack_require__(152); | 18207 | var containsNode = __webpack_require__(147); |
18423 | var focusNode = __webpack_require__(99); | 18208 | var focusNode = __webpack_require__(98); |
18424 | var getActiveElement = __webpack_require__(155); | 18209 | var getActiveElement = __webpack_require__(150); |
18425 | 18210 | ||
18426 | function isInDocument(node) { | 18211 | function isInDocument(node) { |
18427 | return containsNode(document.documentElement, node); | 18212 | return containsNode(document.documentElement, node); |
@@ -18530,7 +18315,7 @@ | |||
18530 | module.exports = ReactInputSelection; | 18315 | module.exports = ReactInputSelection; |
18531 | 18316 | ||
18532 | /***/ }, | 18317 | /***/ }, |
18533 | /* 150 */ | 18318 | /* 145 */ |
18534 | /***/ function(module, exports, __webpack_require__) { | 18319 | /***/ function(module, exports, __webpack_require__) { |
18535 | 18320 | ||
18536 | /** | 18321 | /** |
@@ -18546,10 +18331,10 @@ | |||
18546 | 18331 | ||
18547 | 'use strict'; | 18332 | 'use strict'; |
18548 | 18333 | ||
18549 | var ExecutionEnvironment = __webpack_require__(52); | 18334 | var ExecutionEnvironment = __webpack_require__(51); |
18550 | 18335 | ||
18551 | var getNodeForCharacterOffset = __webpack_require__(151); | 18336 | var getNodeForCharacterOffset = __webpack_require__(146); |
18552 | var getTextContentAccessor = __webpack_require__(54); | 18337 | var getTextContentAccessor = __webpack_require__(53); |
18553 | 18338 | ||
18554 | /** | 18339 | /** |
18555 | * While `isCollapsed` is available on the Selection object and `collapsed` | 18340 | * While `isCollapsed` is available on the Selection object and `collapsed` |
@@ -18747,7 +18532,7 @@ | |||
18747 | module.exports = ReactDOMSelection; | 18532 | module.exports = ReactDOMSelection; |
18748 | 18533 | ||
18749 | /***/ }, | 18534 | /***/ }, |
18750 | /* 151 */ | 18535 | /* 146 */ |
18751 | /***/ function(module, exports) { | 18536 | /***/ function(module, exports) { |
18752 | 18537 | ||
18753 | /** | 18538 | /** |
@@ -18826,7 +18611,7 @@ | |||
18826 | module.exports = getNodeForCharacterOffset; | 18611 | module.exports = getNodeForCharacterOffset; |
18827 | 18612 | ||
18828 | /***/ }, | 18613 | /***/ }, |
18829 | /* 152 */ | 18614 | /* 147 */ |
18830 | /***/ function(module, exports, __webpack_require__) { | 18615 | /***/ function(module, exports, __webpack_require__) { |
18831 | 18616 | ||
18832 | 'use strict'; | 18617 | 'use strict'; |
@@ -18842,7 +18627,7 @@ | |||
18842 | * | 18627 | * |
18843 | */ | 18628 | */ |
18844 | 18629 | ||
18845 | var isTextNode = __webpack_require__(153); | 18630 | var isTextNode = __webpack_require__(148); |
18846 | 18631 | ||
18847 | /*eslint-disable no-bitwise */ | 18632 | /*eslint-disable no-bitwise */ |
18848 | 18633 | ||
@@ -18870,7 +18655,7 @@ | |||
18870 | module.exports = containsNode; | 18655 | module.exports = containsNode; |
18871 | 18656 | ||
18872 | /***/ }, | 18657 | /***/ }, |
18873 | /* 153 */ | 18658 | /* 148 */ |
18874 | /***/ function(module, exports, __webpack_require__) { | 18659 | /***/ function(module, exports, __webpack_require__) { |
18875 | 18660 | ||
18876 | 'use strict'; | 18661 | 'use strict'; |
@@ -18886,7 +18671,7 @@ | |||
18886 | * @typechecks | 18671 | * @typechecks |
18887 | */ | 18672 | */ |
18888 | 18673 | ||
18889 | var isNode = __webpack_require__(154); | 18674 | var isNode = __webpack_require__(149); |
18890 | 18675 | ||
18891 | /** | 18676 | /** |
18892 | * @param {*} object The object to check. | 18677 | * @param {*} object The object to check. |
@@ -18899,7 +18684,7 @@ | |||
18899 | module.exports = isTextNode; | 18684 | module.exports = isTextNode; |
18900 | 18685 | ||
18901 | /***/ }, | 18686 | /***/ }, |
18902 | /* 154 */ | 18687 | /* 149 */ |
18903 | /***/ function(module, exports) { | 18688 | /***/ function(module, exports) { |
18904 | 18689 | ||
18905 | 'use strict'; | 18690 | 'use strict'; |
@@ -18926,7 +18711,7 @@ | |||
18926 | module.exports = isNode; | 18711 | module.exports = isNode; |
18927 | 18712 | ||
18928 | /***/ }, | 18713 | /***/ }, |
18929 | /* 155 */ | 18714 | /* 150 */ |
18930 | /***/ function(module, exports) { | 18715 | /***/ function(module, exports) { |
18931 | 18716 | ||
18932 | 'use strict'; | 18717 | 'use strict'; |
@@ -18965,7 +18750,7 @@ | |||
18965 | module.exports = getActiveElement; | 18750 | module.exports = getActiveElement; |
18966 | 18751 | ||
18967 | /***/ }, | 18752 | /***/ }, |
18968 | /* 156 */ | 18753 | /* 151 */ |
18969 | /***/ function(module, exports) { | 18754 | /***/ function(module, exports) { |
18970 | 18755 | ||
18971 | /** | 18756 | /** |
@@ -19272,7 +19057,7 @@ | |||
19272 | module.exports = SVGDOMPropertyConfig; | 19057 | module.exports = SVGDOMPropertyConfig; |
19273 | 19058 | ||
19274 | /***/ }, | 19059 | /***/ }, |
19275 | /* 157 */ | 19060 | /* 152 */ |
19276 | /***/ function(module, exports, __webpack_require__) { | 19061 | /***/ function(module, exports, __webpack_require__) { |
19277 | 19062 | ||
19278 | /** | 19063 | /** |
@@ -19288,17 +19073,17 @@ | |||
19288 | 19073 | ||
19289 | 'use strict'; | 19074 | 'use strict'; |
19290 | 19075 | ||
19291 | var EventConstants = __webpack_require__(44); | 19076 | var EventConstants = __webpack_require__(43); |
19292 | var EventPropagators = __webpack_require__(45); | 19077 | var EventPropagators = __webpack_require__(44); |
19293 | var ExecutionEnvironment = __webpack_require__(52); | 19078 | var ExecutionEnvironment = __webpack_require__(51); |
19294 | var ReactDOMComponentTree = __webpack_require__(39); | 19079 | var ReactDOMComponentTree = __webpack_require__(38); |
19295 | var ReactInputSelection = __webpack_require__(149); | 19080 | var ReactInputSelection = __webpack_require__(144); |
19296 | var SyntheticEvent = __webpack_require__(56); | 19081 | var SyntheticEvent = __webpack_require__(55); |
19297 | 19082 | ||
19298 | var getActiveElement = __webpack_require__(155); | 19083 | var getActiveElement = __webpack_require__(150); |
19299 | var isTextInputElement = __webpack_require__(75); | 19084 | var isTextInputElement = __webpack_require__(74); |
19300 | var keyOf = __webpack_require__(27); | 19085 | var keyOf = __webpack_require__(27); |
19301 | var shallowEqual = __webpack_require__(131); | 19086 | var shallowEqual = __webpack_require__(126); |
19302 | 19087 | ||
19303 | var topLevelTypes = EventConstants.topLevelTypes; | 19088 | var topLevelTypes = EventConstants.topLevelTypes; |
19304 | 19089 | ||
@@ -19310,7 +19095,7 @@ | |||
19310 | bubbled: keyOf({ onSelect: null }), | 19095 | bubbled: keyOf({ onSelect: null }), |
19311 | captured: keyOf({ onSelectCapture: null }) | 19096 | captured: keyOf({ onSelectCapture: null }) |
19312 | }, | 19097 | }, |
19313 | dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange] | 19098 | dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange] |
19314 | } | 19099 | } |
19315 | }; | 19100 | }; |
19316 | 19101 | ||
@@ -19473,7 +19258,7 @@ | |||
19473 | module.exports = SelectEventPlugin; | 19258 | module.exports = SelectEventPlugin; |
19474 | 19259 | ||
19475 | /***/ }, | 19260 | /***/ }, |
19476 | /* 158 */ | 19261 | /* 153 */ |
19477 | /***/ function(module, exports, __webpack_require__) { | 19262 | /***/ function(module, exports, __webpack_require__) { |
19478 | 19263 | ||
19479 | /* WEBPACK VAR INJECTION */(function(process) {/** | 19264 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -19491,24 +19276,24 @@ | |||
19491 | 19276 | ||
19492 | var _prodInvariant = __webpack_require__(9); | 19277 | var _prodInvariant = __webpack_require__(9); |
19493 | 19278 | ||
19494 | var EventConstants = __webpack_require__(44); | 19279 | var EventConstants = __webpack_require__(43); |
19495 | var EventListener = __webpack_require__(145); | 19280 | var EventListener = __webpack_require__(140); |
19496 | var EventPropagators = __webpack_require__(45); | 19281 | var EventPropagators = __webpack_require__(44); |
19497 | var ReactDOMComponentTree = __webpack_require__(39); | 19282 | var ReactDOMComponentTree = __webpack_require__(38); |
19498 | var SyntheticAnimationEvent = __webpack_require__(159); | 19283 | var SyntheticAnimationEvent = __webpack_require__(154); |
19499 | var SyntheticClipboardEvent = __webpack_require__(160); | 19284 | var SyntheticClipboardEvent = __webpack_require__(155); |
19500 | var SyntheticEvent = __webpack_require__(56); | 19285 | var SyntheticEvent = __webpack_require__(55); |
19501 | var SyntheticFocusEvent = __webpack_require__(161); | 19286 | var SyntheticFocusEvent = __webpack_require__(156); |
19502 | var SyntheticKeyboardEvent = __webpack_require__(162); | 19287 | var SyntheticKeyboardEvent = __webpack_require__(157); |
19503 | var SyntheticMouseEvent = __webpack_require__(78); | 19288 | var SyntheticMouseEvent = __webpack_require__(77); |
19504 | var SyntheticDragEvent = __webpack_require__(165); | 19289 | var SyntheticDragEvent = __webpack_require__(160); |
19505 | var SyntheticTouchEvent = __webpack_require__(166); | 19290 | var SyntheticTouchEvent = __webpack_require__(161); |
19506 | var SyntheticTransitionEvent = __webpack_require__(167); | 19291 | var SyntheticTransitionEvent = __webpack_require__(162); |
19507 | var SyntheticUIEvent = __webpack_require__(79); | 19292 | var SyntheticUIEvent = __webpack_require__(78); |
19508 | var SyntheticWheelEvent = __webpack_require__(168); | 19293 | var SyntheticWheelEvent = __webpack_require__(163); |
19509 | 19294 | ||
19510 | var emptyFunction = __webpack_require__(14); | 19295 | var emptyFunction = __webpack_require__(14); |
19511 | var getEventCharCode = __webpack_require__(163); | 19296 | var getEventCharCode = __webpack_require__(158); |
19512 | var invariant = __webpack_require__(10); | 19297 | var invariant = __webpack_require__(10); |
19513 | var keyOf = __webpack_require__(27); | 19298 | var keyOf = __webpack_require__(27); |
19514 | 19299 | ||
@@ -19964,6 +19749,8 @@ | |||
19964 | var onClickListeners = {}; | 19749 | var onClickListeners = {}; |
19965 | 19750 | ||
19966 | function getDictionaryKey(inst) { | 19751 | function getDictionaryKey(inst) { |
19752 | // Prevents V8 performance issue: | ||
19753 | // https://github.com/facebook/react/pull/7232 | ||
19967 | return '.' + inst._rootNodeID; | 19754 | return '.' + inst._rootNodeID; |
19968 | } | 19755 | } |
19969 | 19756 | ||
@@ -20112,7 +19899,7 @@ | |||
20112 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 19899 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
20113 | 19900 | ||
20114 | /***/ }, | 19901 | /***/ }, |
20115 | /* 159 */ | 19902 | /* 154 */ |
20116 | /***/ function(module, exports, __webpack_require__) { | 19903 | /***/ function(module, exports, __webpack_require__) { |
20117 | 19904 | ||
20118 | /** | 19905 | /** |
@@ -20128,7 +19915,7 @@ | |||
20128 | 19915 | ||
20129 | 'use strict'; | 19916 | 'use strict'; |
20130 | 19917 | ||
20131 | var SyntheticEvent = __webpack_require__(56); | 19918 | var SyntheticEvent = __webpack_require__(55); |
20132 | 19919 | ||
20133 | /** | 19920 | /** |
20134 | * @interface Event | 19921 | * @interface Event |
@@ -20156,7 +19943,7 @@ | |||
20156 | module.exports = SyntheticAnimationEvent; | 19943 | module.exports = SyntheticAnimationEvent; |
20157 | 19944 | ||
20158 | /***/ }, | 19945 | /***/ }, |
20159 | /* 160 */ | 19946 | /* 155 */ |
20160 | /***/ function(module, exports, __webpack_require__) { | 19947 | /***/ function(module, exports, __webpack_require__) { |
20161 | 19948 | ||
20162 | /** | 19949 | /** |
@@ -20172,7 +19959,7 @@ | |||
20172 | 19959 | ||
20173 | 'use strict'; | 19960 | 'use strict'; |
20174 | 19961 | ||
20175 | var SyntheticEvent = __webpack_require__(56); | 19962 | var SyntheticEvent = __webpack_require__(55); |
20176 | 19963 | ||
20177 | /** | 19964 | /** |
20178 | * @interface Event | 19965 | * @interface Event |
@@ -20199,7 +19986,7 @@ | |||
20199 | module.exports = SyntheticClipboardEvent; | 19986 | module.exports = SyntheticClipboardEvent; |
20200 | 19987 | ||
20201 | /***/ }, | 19988 | /***/ }, |
20202 | /* 161 */ | 19989 | /* 156 */ |
20203 | /***/ function(module, exports, __webpack_require__) { | 19990 | /***/ function(module, exports, __webpack_require__) { |
20204 | 19991 | ||
20205 | /** | 19992 | /** |
@@ -20215,7 +20002,7 @@ | |||
20215 | 20002 | ||
20216 | 'use strict'; | 20003 | 'use strict'; |
20217 | 20004 | ||
20218 | var SyntheticUIEvent = __webpack_require__(79); | 20005 | var SyntheticUIEvent = __webpack_require__(78); |
20219 | 20006 | ||
20220 | /** | 20007 | /** |
20221 | * @interface FocusEvent | 20008 | * @interface FocusEvent |
@@ -20240,7 +20027,7 @@ | |||
20240 | module.exports = SyntheticFocusEvent; | 20027 | module.exports = SyntheticFocusEvent; |
20241 | 20028 | ||
20242 | /***/ }, | 20029 | /***/ }, |
20243 | /* 162 */ | 20030 | /* 157 */ |
20244 | /***/ function(module, exports, __webpack_require__) { | 20031 | /***/ function(module, exports, __webpack_require__) { |
20245 | 20032 | ||
20246 | /** | 20033 | /** |
@@ -20256,11 +20043,11 @@ | |||
20256 | 20043 | ||
20257 | 'use strict'; | 20044 | 'use strict'; |
20258 | 20045 | ||
20259 | var SyntheticUIEvent = __webpack_require__(79); | 20046 | var SyntheticUIEvent = __webpack_require__(78); |
20260 | 20047 | ||
20261 | var getEventCharCode = __webpack_require__(163); | 20048 | var getEventCharCode = __webpack_require__(158); |
20262 | var getEventKey = __webpack_require__(164); | 20049 | var getEventKey = __webpack_require__(159); |
20263 | var getEventModifierState = __webpack_require__(81); | 20050 | var getEventModifierState = __webpack_require__(80); |
20264 | 20051 | ||
20265 | /** | 20052 | /** |
20266 | * @interface KeyboardEvent | 20053 | * @interface KeyboardEvent |
@@ -20329,7 +20116,7 @@ | |||
20329 | module.exports = SyntheticKeyboardEvent; | 20116 | module.exports = SyntheticKeyboardEvent; |
20330 | 20117 | ||
20331 | /***/ }, | 20118 | /***/ }, |
20332 | /* 163 */ | 20119 | /* 158 */ |
20333 | /***/ function(module, exports) { | 20120 | /***/ function(module, exports) { |
20334 | 20121 | ||
20335 | /** | 20122 | /** |
@@ -20384,7 +20171,7 @@ | |||
20384 | module.exports = getEventCharCode; | 20171 | module.exports = getEventCharCode; |
20385 | 20172 | ||
20386 | /***/ }, | 20173 | /***/ }, |
20387 | /* 164 */ | 20174 | /* 159 */ |
20388 | /***/ function(module, exports, __webpack_require__) { | 20175 | /***/ function(module, exports, __webpack_require__) { |
20389 | 20176 | ||
20390 | /** | 20177 | /** |
@@ -20400,7 +20187,7 @@ | |||
20400 | 20187 | ||
20401 | 'use strict'; | 20188 | 'use strict'; |
20402 | 20189 | ||
20403 | var getEventCharCode = __webpack_require__(163); | 20190 | var getEventCharCode = __webpack_require__(158); |
20404 | 20191 | ||
20405 | /** | 20192 | /** |
20406 | * Normalization of deprecated HTML5 `key` values | 20193 | * Normalization of deprecated HTML5 `key` values |
@@ -20491,7 +20278,7 @@ | |||
20491 | module.exports = getEventKey; | 20278 | module.exports = getEventKey; |
20492 | 20279 | ||
20493 | /***/ }, | 20280 | /***/ }, |
20494 | /* 165 */ | 20281 | /* 160 */ |
20495 | /***/ function(module, exports, __webpack_require__) { | 20282 | /***/ function(module, exports, __webpack_require__) { |
20496 | 20283 | ||
20497 | /** | 20284 | /** |
@@ -20507,7 +20294,7 @@ | |||
20507 | 20294 | ||
20508 | 'use strict'; | 20295 | 'use strict'; |
20509 | 20296 | ||
20510 | var SyntheticMouseEvent = __webpack_require__(78); | 20297 | var SyntheticMouseEvent = __webpack_require__(77); |
20511 | 20298 | ||
20512 | /** | 20299 | /** |
20513 | * @interface DragEvent | 20300 | * @interface DragEvent |
@@ -20532,7 +20319,7 @@ | |||
20532 | module.exports = SyntheticDragEvent; | 20319 | module.exports = SyntheticDragEvent; |
20533 | 20320 | ||
20534 | /***/ }, | 20321 | /***/ }, |
20535 | /* 166 */ | 20322 | /* 161 */ |
20536 | /***/ function(module, exports, __webpack_require__) { | 20323 | /***/ function(module, exports, __webpack_require__) { |
20537 | 20324 | ||
20538 | /** | 20325 | /** |
@@ -20548,9 +20335,9 @@ | |||
20548 | 20335 | ||
20549 | 'use strict'; | 20336 | 'use strict'; |
20550 | 20337 | ||
20551 | var SyntheticUIEvent = __webpack_require__(79); | 20338 | var SyntheticUIEvent = __webpack_require__(78); |
20552 | 20339 | ||
20553 | var getEventModifierState = __webpack_require__(81); | 20340 | var getEventModifierState = __webpack_require__(80); |
20554 | 20341 | ||
20555 | /** | 20342 | /** |
20556 | * @interface TouchEvent | 20343 | * @interface TouchEvent |
@@ -20582,7 +20369,7 @@ | |||
20582 | module.exports = SyntheticTouchEvent; | 20369 | module.exports = SyntheticTouchEvent; |
20583 | 20370 | ||
20584 | /***/ }, | 20371 | /***/ }, |
20585 | /* 167 */ | 20372 | /* 162 */ |
20586 | /***/ function(module, exports, __webpack_require__) { | 20373 | /***/ function(module, exports, __webpack_require__) { |
20587 | 20374 | ||
20588 | /** | 20375 | /** |
@@ -20598,7 +20385,7 @@ | |||
20598 | 20385 | ||
20599 | 'use strict'; | 20386 | 'use strict'; |
20600 | 20387 | ||
20601 | var SyntheticEvent = __webpack_require__(56); | 20388 | var SyntheticEvent = __webpack_require__(55); |
20602 | 20389 | ||
20603 | /** | 20390 | /** |
20604 | * @interface Event | 20391 | * @interface Event |
@@ -20626,7 +20413,7 @@ | |||
20626 | module.exports = SyntheticTransitionEvent; | 20413 | module.exports = SyntheticTransitionEvent; |
20627 | 20414 | ||
20628 | /***/ }, | 20415 | /***/ }, |
20629 | /* 168 */ | 20416 | /* 163 */ |
20630 | /***/ function(module, exports, __webpack_require__) { | 20417 | /***/ function(module, exports, __webpack_require__) { |
20631 | 20418 | ||
20632 | /** | 20419 | /** |
@@ -20642,7 +20429,7 @@ | |||
20642 | 20429 | ||
20643 | 'use strict'; | 20430 | 'use strict'; |
20644 | 20431 | ||
20645 | var SyntheticMouseEvent = __webpack_require__(78); | 20432 | var SyntheticMouseEvent = __webpack_require__(77); |
20646 | 20433 | ||
20647 | /** | 20434 | /** |
20648 | * @interface WheelEvent | 20435 | * @interface WheelEvent |
@@ -20685,7 +20472,7 @@ | |||
20685 | module.exports = SyntheticWheelEvent; | 20472 | module.exports = SyntheticWheelEvent; |
20686 | 20473 | ||
20687 | /***/ }, | 20474 | /***/ }, |
20688 | /* 169 */ | 20475 | /* 164 */ |
20689 | /***/ function(module, exports, __webpack_require__) { | 20476 | /***/ function(module, exports, __webpack_require__) { |
20690 | 20477 | ||
20691 | /* WEBPACK VAR INJECTION */(function(process) {/** | 20478 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -20703,27 +20490,27 @@ | |||
20703 | 20490 | ||
20704 | var _prodInvariant = __webpack_require__(9); | 20491 | var _prodInvariant = __webpack_require__(9); |
20705 | 20492 | ||
20706 | var DOMLazyTree = __webpack_require__(85); | 20493 | var DOMLazyTree = __webpack_require__(84); |
20707 | var DOMProperty = __webpack_require__(40); | 20494 | var DOMProperty = __webpack_require__(39); |
20708 | var ReactBrowserEventEmitter = __webpack_require__(114); | 20495 | var ReactBrowserEventEmitter = __webpack_require__(109); |
20709 | var ReactCurrentOwner = __webpack_require__(12); | 20496 | var ReactCurrentOwner = __webpack_require__(12); |
20710 | var ReactDOMComponentTree = __webpack_require__(39); | 20497 | var ReactDOMComponentTree = __webpack_require__(38); |
20711 | var ReactDOMContainerInfo = __webpack_require__(170); | 20498 | var ReactDOMContainerInfo = __webpack_require__(165); |
20712 | var ReactDOMFeatureFlags = __webpack_require__(171); | 20499 | var ReactDOMFeatureFlags = __webpack_require__(166); |
20713 | var ReactElement = __webpack_require__(11); | 20500 | var ReactElement = __webpack_require__(11); |
20714 | var ReactFeatureFlags = __webpack_require__(61); | 20501 | var ReactFeatureFlags = __webpack_require__(60); |
20715 | var ReactInstanceMap = __webpack_require__(126); | 20502 | var ReactInstanceMap = __webpack_require__(121); |
20716 | var ReactInstrumentation = __webpack_require__(65); | 20503 | var ReactInstrumentation = __webpack_require__(64); |
20717 | var ReactMarkupChecksum = __webpack_require__(172); | 20504 | var ReactMarkupChecksum = __webpack_require__(167); |
20718 | var ReactReconciler = __webpack_require__(62); | 20505 | var ReactReconciler = __webpack_require__(61); |
20719 | var ReactUpdateQueue = __webpack_require__(138); | 20506 | var ReactUpdateQueue = __webpack_require__(133); |
20720 | var ReactUpdates = __webpack_require__(59); | 20507 | var ReactUpdates = __webpack_require__(58); |
20721 | 20508 | ||
20722 | var emptyObject = __webpack_require__(21); | 20509 | var emptyObject = __webpack_require__(21); |
20723 | var instantiateReactComponent = __webpack_require__(128); | 20510 | var instantiateReactComponent = __webpack_require__(123); |
20724 | var invariant = __webpack_require__(10); | 20511 | var invariant = __webpack_require__(10); |
20725 | var setInnerHTML = __webpack_require__(87); | 20512 | var setInnerHTML = __webpack_require__(86); |
20726 | var shouldUpdateReactComponent = __webpack_require__(132); | 20513 | var shouldUpdateReactComponent = __webpack_require__(127); |
20727 | var warning = __webpack_require__(13); | 20514 | var warning = __webpack_require__(13); |
20728 | 20515 | ||
20729 | var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; | 20516 | var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; |
@@ -20792,7 +20579,8 @@ | |||
20792 | console.time(markerName); | 20579 | console.time(markerName); |
20793 | } | 20580 | } |
20794 | 20581 | ||
20795 | var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context); | 20582 | var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */ |
20583 | ); | ||
20796 | 20584 | ||
20797 | if (markerName) { | 20585 | if (markerName) { |
20798 | console.timeEnd(markerName); | 20586 | console.timeEnd(markerName); |
@@ -20863,6 +20651,41 @@ | |||
20863 | } | 20651 | } |
20864 | } | 20652 | } |
20865 | 20653 | ||
20654 | /** | ||
20655 | * True if the supplied DOM node is a React DOM element and | ||
20656 | * it has been rendered by another copy of React. | ||
20657 | * | ||
20658 | * @param {?DOMElement} node The candidate DOM node. | ||
20659 | * @return {boolean} True if the DOM has been rendered by another copy of React | ||
20660 | * @internal | ||
20661 | */ | ||
20662 | function nodeIsRenderedByOtherInstance(container) { | ||
20663 | var rootEl = getReactRootElementInContainer(container); | ||
20664 | return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl)); | ||
20665 | } | ||
20666 | |||
20667 | /** | ||
20668 | * True if the supplied DOM node is a valid node element. | ||
20669 | * | ||
20670 | * @param {?DOMElement} node The candidate DOM node. | ||
20671 | * @return {boolean} True if the DOM is a valid DOM node. | ||
20672 | * @internal | ||
20673 | */ | ||
20674 | function isValidContainer(node) { | ||
20675 | return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)); | ||
20676 | } | ||
20677 | |||
20678 | /** | ||
20679 | * True if the supplied DOM node is a valid React node element. | ||
20680 | * | ||
20681 | * @param {?DOMElement} node The candidate DOM node. | ||
20682 | * @return {boolean} True if the DOM is a valid React DOM node. | ||
20683 | * @internal | ||
20684 | */ | ||
20685 | function isReactNode(node) { | ||
20686 | return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME)); | ||
20687 | } | ||
20688 | |||
20866 | function getHostRootInstanceInContainer(container) { | 20689 | function getHostRootInstanceInContainer(container) { |
20867 | var rootEl = getReactRootElementInContainer(container); | 20690 | var rootEl = getReactRootElementInContainer(container); |
20868 | var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl); | 20691 | var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl); |
@@ -20950,7 +20773,7 @@ | |||
20950 | }, | 20773 | }, |
20951 | 20774 | ||
20952 | /** | 20775 | /** |
20953 | * Render a new component into the DOM. Hooked by devtools! | 20776 | * Render a new component into the DOM. Hooked by hooks! |
20954 | * | 20777 | * |
20955 | * @param {ReactElement} nextElement element to render | 20778 | * @param {ReactElement} nextElement element to render |
20956 | * @param {DOMElement} container container to render into | 20779 | * @param {DOMElement} container container to render into |
@@ -20963,7 +20786,7 @@ | |||
20963 | // verify that that's the case. | 20786 | // verify that that's the case. |
20964 | process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; | 20787 | process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; |
20965 | 20788 | ||
20966 | !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0; | 20789 | !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0; |
20967 | 20790 | ||
20968 | ReactBrowserEventEmitter.ensureScrollValueMonitoring(); | 20791 | ReactBrowserEventEmitter.ensureScrollValueMonitoring(); |
20969 | var componentInstance = instantiateReactComponent(nextElement, false); | 20792 | var componentInstance = instantiateReactComponent(nextElement, false); |
@@ -20977,11 +20800,6 @@ | |||
20977 | var wrapperID = componentInstance._instance.rootID; | 20800 | var wrapperID = componentInstance._instance.rootID; |
20978 | instancesByReactRootID[wrapperID] = componentInstance; | 20801 | instancesByReactRootID[wrapperID] = componentInstance; |
20979 | 20802 | ||
20980 | if (process.env.NODE_ENV !== 'production') { | ||
20981 | // The instance here is TopLevelWrapper so we report mount for its child. | ||
20982 | ReactInstrumentation.debugTool.onMountRootComponent(componentInstance._renderedComponent._debugID); | ||
20983 | } | ||
20984 | |||
20985 | return componentInstance; | 20803 | return componentInstance; |
20986 | }, | 20804 | }, |
20987 | 20805 | ||
@@ -21097,7 +20915,11 @@ | |||
21097 | // render but we still don't expect to be in a render call here.) | 20915 | // render but we still don't expect to be in a render call here.) |
21098 | process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; | 20916 | process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; |
21099 | 20917 | ||
21100 | !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0; | 20918 | !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0; |
20919 | |||
20920 | if (process.env.NODE_ENV !== 'production') { | ||
20921 | process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0; | ||
20922 | } | ||
21101 | 20923 | ||
21102 | var prevComponent = getTopLevelWrapperInContainer(container); | 20924 | var prevComponent = getTopLevelWrapperInContainer(container); |
21103 | if (!prevComponent) { | 20925 | if (!prevComponent) { |
@@ -21120,7 +20942,7 @@ | |||
21120 | }, | 20942 | }, |
21121 | 20943 | ||
21122 | _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) { | 20944 | _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) { |
21123 | !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0; | 20945 | !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0; |
21124 | 20946 | ||
21125 | if (shouldReuseMarkup) { | 20947 | if (shouldReuseMarkup) { |
21126 | var rootElement = getReactRootElementInContainer(container); | 20948 | var rootElement = getReactRootElementInContainer(container); |
@@ -21190,7 +21012,7 @@ | |||
21190 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 21012 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
21191 | 21013 | ||
21192 | /***/ }, | 21014 | /***/ }, |
21193 | /* 170 */ | 21015 | /* 165 */ |
21194 | /***/ function(module, exports, __webpack_require__) { | 21016 | /***/ function(module, exports, __webpack_require__) { |
21195 | 21017 | ||
21196 | /* WEBPACK VAR INJECTION */(function(process) {/** | 21018 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -21206,7 +21028,7 @@ | |||
21206 | 21028 | ||
21207 | 'use strict'; | 21029 | 'use strict'; |
21208 | 21030 | ||
21209 | var validateDOMNesting = __webpack_require__(139); | 21031 | var validateDOMNesting = __webpack_require__(134); |
21210 | 21032 | ||
21211 | var DOC_NODE_TYPE = 9; | 21033 | var DOC_NODE_TYPE = 9; |
21212 | 21034 | ||
@@ -21229,7 +21051,7 @@ | |||
21229 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 21051 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
21230 | 21052 | ||
21231 | /***/ }, | 21053 | /***/ }, |
21232 | /* 171 */ | 21054 | /* 166 */ |
21233 | /***/ function(module, exports) { | 21055 | /***/ function(module, exports) { |
21234 | 21056 | ||
21235 | /** | 21057 | /** |
@@ -21252,7 +21074,7 @@ | |||
21252 | module.exports = ReactDOMFeatureFlags; | 21074 | module.exports = ReactDOMFeatureFlags; |
21253 | 21075 | ||
21254 | /***/ }, | 21076 | /***/ }, |
21255 | /* 172 */ | 21077 | /* 167 */ |
21256 | /***/ function(module, exports, __webpack_require__) { | 21078 | /***/ function(module, exports, __webpack_require__) { |
21257 | 21079 | ||
21258 | /** | 21080 | /** |
@@ -21268,7 +21090,7 @@ | |||
21268 | 21090 | ||
21269 | 'use strict'; | 21091 | 'use strict'; |
21270 | 21092 | ||
21271 | var adler32 = __webpack_require__(173); | 21093 | var adler32 = __webpack_require__(168); |
21272 | 21094 | ||
21273 | var TAG_END = /\/?>/; | 21095 | var TAG_END = /\/?>/; |
21274 | var COMMENT_START = /^<\!\-\-/; | 21096 | var COMMENT_START = /^<\!\-\-/; |
@@ -21307,7 +21129,7 @@ | |||
21307 | module.exports = ReactMarkupChecksum; | 21129 | module.exports = ReactMarkupChecksum; |
21308 | 21130 | ||
21309 | /***/ }, | 21131 | /***/ }, |
21310 | /* 173 */ | 21132 | /* 168 */ |
21311 | /***/ function(module, exports) { | 21133 | /***/ function(module, exports) { |
21312 | 21134 | ||
21313 | /** | 21135 | /** |
@@ -21356,7 +21178,7 @@ | |||
21356 | module.exports = adler32; | 21178 | module.exports = adler32; |
21357 | 21179 | ||
21358 | /***/ }, | 21180 | /***/ }, |
21359 | /* 174 */ | 21181 | /* 169 */ |
21360 | /***/ function(module, exports, __webpack_require__) { | 21182 | /***/ function(module, exports, __webpack_require__) { |
21361 | 21183 | ||
21362 | /* WEBPACK VAR INJECTION */(function(process) {/** | 21184 | /* WEBPACK VAR INJECTION */(function(process) {/** |
@@ -21375,10 +21197,10 @@ | |||
21375 | var _prodInvariant = __webpack_require__(9); | 21197 | var _prodInvariant = __webpack_require__(9); |
21376 | 21198 | ||
21377 | var ReactCurrentOwner = __webpack_require__(12); | 21199 | var ReactCurrentOwner = __webpack_require__(12); |
21378 | var ReactDOMComponentTree = __webpack_require__(39); | 21200 | var ReactDOMComponentTree = __webpack_require__(38); |
21379 | var ReactInstanceMap = __webpack_require__(126); | 21201 | var ReactInstanceMap = __webpack_require__(121); |
21380 | 21202 | ||
21381 | var getHostComponentFromComposite = __webpack_require__(175); | 21203 | var getHostComponentFromComposite = __webpack_require__(170); |
21382 | var invariant = __webpack_require__(10); | 21204 | var invariant = __webpack_require__(10); |
21383 | var warning = __webpack_require__(13); | 21205 | var warning = __webpack_require__(13); |
21384 | 21206 | ||
@@ -21422,7 +21244,7 @@ | |||
21422 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | 21244 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) |
21423 | 21245 | ||
21424 | /***/ }, | 21246 | /***/ }, |
21425 | /* 175 */ | 21247 | /* 170 */ |
21426 | /***/ function(module, exports, __webpack_require__) { | 21248 | /***/ function(module, exports, __webpack_require__) { |
21427 | 21249 | ||
21428 | /** | 21250 | /** |
@@ -21438,7 +21260,7 @@ | |||
21438 | 21260 | ||
21439 | 'use strict'; | 21261 | 'use strict'; |
21440 | 21262 | ||
21441 | var ReactNodeTypes = __webpack_require__(130); | 21263 | var ReactNodeTypes = __webpack_require__(125); |
21442 | 21264 | ||
21443 | function getHostComponentFromComposite(inst) { | 21265 | function getHostComponentFromComposite(inst) { |
21444 | var type; | 21266 | var type; |
@@ -21457,7 +21279,7 @@ | |||
21457 | module.exports = getHostComponentFromComposite; | 21279 | module.exports = getHostComponentFromComposite; |
21458 | 21280 | ||
21459 | /***/ }, | 21281 | /***/ }, |
21460 | /* 176 */ | 21282 | /* 171 */ |
21461 | /***/ function(module, exports, __webpack_require__) { | 21283 | /***/ function(module, exports, __webpack_require__) { |
21462 | 21284 | ||
21463 | /** | 21285 | /** |
@@ -21473,16 +21295,183 @@ | |||
21473 | 21295 | ||
21474 | 'use strict'; | 21296 | 'use strict'; |
21475 | 21297 | ||
21476 | var ReactMount = __webpack_require__(169); | 21298 | var ReactMount = __webpack_require__(164); |
21477 | 21299 | ||
21478 | module.exports = ReactMount.renderSubtreeIntoContainer; | 21300 | module.exports = ReactMount.renderSubtreeIntoContainer; |
21479 | 21301 | ||
21480 | /***/ }, | 21302 | /***/ }, |
21481 | /* 177 */ | 21303 | /* 172 */ |
21304 | /***/ function(module, exports, __webpack_require__) { | ||
21305 | |||
21306 | /* WEBPACK VAR INJECTION */(function(process) {/** | ||
21307 | * Copyright 2013-present, Facebook, Inc. | ||
21308 | * All rights reserved. | ||
21309 | * | ||
21310 | * This source code is licensed under the BSD-style license found in the | ||
21311 | * LICENSE file in the root directory of this source tree. An additional grant | ||
21312 | * of patent rights can be found in the PATENTS file in the same directory. | ||
21313 | * | ||
21314 | * @providesModule ReactDOMUnknownPropertyHook | ||
21315 | */ | ||
21316 | |||
21317 | 'use strict'; | ||
21318 | |||
21319 | var DOMProperty = __webpack_require__(39); | ||
21320 | var EventPluginRegistry = __webpack_require__(46); | ||
21321 | var ReactComponentTreeHook = __webpack_require__(30); | ||
21322 | |||
21323 | var warning = __webpack_require__(13); | ||
21324 | |||
21325 | if (process.env.NODE_ENV !== 'production') { | ||
21326 | var reactProps = { | ||
21327 | children: true, | ||
21328 | dangerouslySetInnerHTML: true, | ||
21329 | key: true, | ||
21330 | ref: true, | ||
21331 | |||
21332 | autoFocus: true, | ||
21333 | defaultValue: true, | ||
21334 | valueLink: true, | ||
21335 | defaultChecked: true, | ||
21336 | checkedLink: true, | ||
21337 | innerHTML: true, | ||
21338 | suppressContentEditableWarning: true, | ||
21339 | onFocusIn: true, | ||
21340 | onFocusOut: true | ||
21341 | }; | ||
21342 | var warnedProperties = {}; | ||
21343 | |||
21344 | var validateProperty = function (tagName, name, debugID) { | ||
21345 | if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) { | ||
21346 | return true; | ||
21347 | } | ||
21348 | if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { | ||
21349 | return true; | ||
21350 | } | ||
21351 | if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) { | ||
21352 | return true; | ||
21353 | } | ||
21354 | warnedProperties[name] = true; | ||
21355 | var lowerCasedName = name.toLowerCase(); | ||
21356 | |||
21357 | // data-* attributes should be lowercase; suggest the lowercase version | ||
21358 | var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; | ||
21359 | |||
21360 | var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null; | ||
21361 | |||
21362 | if (standardName != null) { | ||
21363 | process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; | ||
21364 | return true; | ||
21365 | } else if (registrationName != null) { | ||
21366 | process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; | ||
21367 | return true; | ||
21368 | } else { | ||
21369 | // We were unable to guess which prop the user intended. | ||
21370 | // It is likely that the user was just blindly spreading/forwarding props | ||
21371 | // Components should be careful to only render valid props/attributes. | ||
21372 | // Warning will be invoked in warnUnknownProperties to allow grouping. | ||
21373 | return false; | ||
21374 | } | ||
21375 | }; | ||
21376 | } | ||
21377 | |||
21378 | var warnUnknownProperties = function (debugID, element) { | ||
21379 | var unknownProps = []; | ||
21380 | for (var key in element.props) { | ||
21381 | var isValid = validateProperty(element.type, key, debugID); | ||
21382 | if (!isValid) { | ||
21383 | unknownProps.push(key); | ||
21384 | } | ||
21385 | } | ||
21386 | |||
21387 | var unknownPropString = unknownProps.map(function (prop) { | ||
21388 | return '`' + prop + '`'; | ||
21389 | }).join(', '); | ||
21390 | |||
21391 | if (unknownProps.length === 1) { | ||
21392 | process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; | ||
21393 | } else if (unknownProps.length > 1) { | ||
21394 | process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; | ||
21395 | } | ||
21396 | }; | ||
21397 | |||
21398 | function handleElement(debugID, element) { | ||
21399 | if (element == null || typeof element.type !== 'string') { | ||
21400 | return; | ||
21401 | } | ||
21402 | if (element.type.indexOf('-') >= 0 || element.props.is) { | ||
21403 | return; | ||
21404 | } | ||
21405 | warnUnknownProperties(debugID, element); | ||
21406 | } | ||
21407 | |||
21408 | var ReactDOMUnknownPropertyHook = { | ||
21409 | onBeforeMountComponent: function (debugID, element) { | ||
21410 | handleElement(debugID, element); | ||
21411 | }, | ||
21412 | onBeforeUpdateComponent: function (debugID, element) { | ||
21413 | handleElement(debugID, element); | ||
21414 | } | ||
21415 | }; | ||
21416 | |||
21417 | module.exports = ReactDOMUnknownPropertyHook; | ||
21418 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
21419 | |||
21420 | /***/ }, | ||
21421 | /* 173 */ | ||
21422 | /***/ function(module, exports, __webpack_require__) { | ||
21423 | |||
21424 | /* WEBPACK VAR INJECTION */(function(process) {/** | ||
21425 | * Copyright 2013-present, Facebook, Inc. | ||
21426 | * All rights reserved. | ||
21427 | * | ||
21428 | * This source code is licensed under the BSD-style license found in the | ||
21429 | * LICENSE file in the root directory of this source tree. An additional grant | ||
21430 | * of patent rights can be found in the PATENTS file in the same directory. | ||
21431 | * | ||
21432 | * @providesModule ReactDOMNullInputValuePropHook | ||
21433 | */ | ||
21434 | |||
21435 | 'use strict'; | ||
21436 | |||
21437 | var ReactComponentTreeHook = __webpack_require__(30); | ||
21438 | |||
21439 | var warning = __webpack_require__(13); | ||
21440 | |||
21441 | var didWarnValueNull = false; | ||
21442 | |||
21443 | function handleElement(debugID, element) { | ||
21444 | if (element == null) { | ||
21445 | return; | ||
21446 | } | ||
21447 | if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') { | ||
21448 | return; | ||
21449 | } | ||
21450 | if (element.props != null && element.props.value === null && !didWarnValueNull) { | ||
21451 | process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; | ||
21452 | |||
21453 | didWarnValueNull = true; | ||
21454 | } | ||
21455 | } | ||
21456 | |||
21457 | var ReactDOMNullInputValuePropHook = { | ||
21458 | onBeforeMountComponent: function (debugID, element) { | ||
21459 | handleElement(debugID, element); | ||
21460 | }, | ||
21461 | onBeforeUpdateComponent: function (debugID, element) { | ||
21462 | handleElement(debugID, element); | ||
21463 | } | ||
21464 | }; | ||
21465 | |||
21466 | module.exports = ReactDOMNullInputValuePropHook; | ||
21467 | /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
21468 | |||
21469 | /***/ }, | ||
21470 | /* 174 */ | ||
21482 | /***/ function(module, exports) { | 21471 | /***/ function(module, exports) { |
21483 | 21472 | ||
21484 | //! moment.js | 21473 | //! moment.js |
21485 | //! version : 2.14.1 | 21474 | //! version : 2.16.0 |
21486 | //! authors : Tim Wood, Iskren Chernev, Moment.js contributors | 21475 | //! authors : Tim Wood, Iskren Chernev, Moment.js contributors |
21487 | //! license : MIT | 21476 | //! license : MIT |
21488 | //! momentjs.com | 21477 | //! momentjs.com |
@@ -21491,4194 +21480,4298 @@ | |||
21491 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | 21480 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : |
21492 | typeof define === 'function' && define.amd ? define(factory) : | 21481 | typeof define === 'function' && define.amd ? define(factory) : |
21493 | global.moment = factory() | 21482 | global.moment = factory() |
21494 | }(this, function () { 'use strict'; | 21483 | }(this, (function () { 'use strict'; |
21495 | 21484 | ||
21496 | var hookCallback; | 21485 | var hookCallback; |
21497 | 21486 | ||
21498 | function utils_hooks__hooks () { | 21487 | function hooks () { |
21499 | return hookCallback.apply(null, arguments); | 21488 | return hookCallback.apply(null, arguments); |
21500 | } | 21489 | } |
21501 | 21490 | ||
21502 | // This is done to register the method called with moment() | 21491 | // This is done to register the method called with moment() |
21503 | // without creating circular dependencies. | 21492 | // without creating circular dependencies. |
21504 | function setHookCallback (callback) { | 21493 | function setHookCallback (callback) { |
21505 | hookCallback = callback; | 21494 | hookCallback = callback; |
21506 | } | 21495 | } |
21507 | 21496 | ||
21508 | function isArray(input) { | 21497 | function isArray(input) { |
21509 | return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; | 21498 | return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; |
21510 | } | 21499 | } |
21511 | 21500 | ||
21512 | function isObject(input) { | 21501 | function isObject(input) { |
21513 | return Object.prototype.toString.call(input) === '[object Object]'; | 21502 | // IE8 will treat undefined and null as object if it wasn't for |
21514 | } | 21503 | // input != null |
21504 | return input != null && Object.prototype.toString.call(input) === '[object Object]'; | ||
21505 | } | ||
21515 | 21506 | ||
21516 | function isObjectEmpty(obj) { | 21507 | function isObjectEmpty(obj) { |
21517 | var k; | 21508 | var k; |
21518 | for (k in obj) { | 21509 | for (k in obj) { |
21519 | // even if its not own property I'd still call it non-empty | 21510 | // even if its not own property I'd still call it non-empty |
21520 | return false; | 21511 | return false; |
21521 | } | ||
21522 | return true; | ||
21523 | } | 21512 | } |
21513 | return true; | ||
21514 | } | ||
21524 | 21515 | ||
21525 | function isDate(input) { | 21516 | function isNumber(input) { |
21526 | return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; | 21517 | return typeof value === 'number' || Object.prototype.toString.call(input) === '[object Number]'; |
21527 | } | 21518 | } |
21528 | 21519 | ||
21529 | function map(arr, fn) { | 21520 | function isDate(input) { |
21530 | var res = [], i; | 21521 | return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; |
21531 | for (i = 0; i < arr.length; ++i) { | 21522 | } |
21532 | res.push(fn(arr[i], i)); | ||
21533 | } | ||
21534 | return res; | ||
21535 | } | ||
21536 | 21523 | ||
21537 | function hasOwnProp(a, b) { | 21524 | function map(arr, fn) { |
21538 | return Object.prototype.hasOwnProperty.call(a, b); | 21525 | var res = [], i; |
21526 | for (i = 0; i < arr.length; ++i) { | ||
21527 | res.push(fn(arr[i], i)); | ||
21539 | } | 21528 | } |
21529 | return res; | ||
21530 | } | ||
21540 | 21531 | ||
21541 | function extend(a, b) { | 21532 | function hasOwnProp(a, b) { |
21542 | for (var i in b) { | 21533 | return Object.prototype.hasOwnProperty.call(a, b); |
21543 | if (hasOwnProp(b, i)) { | 21534 | } |
21544 | a[i] = b[i]; | ||
21545 | } | ||
21546 | } | ||
21547 | |||
21548 | if (hasOwnProp(b, 'toString')) { | ||
21549 | a.toString = b.toString; | ||
21550 | } | ||
21551 | 21535 | ||
21552 | if (hasOwnProp(b, 'valueOf')) { | 21536 | function extend(a, b) { |
21553 | a.valueOf = b.valueOf; | 21537 | for (var i in b) { |
21538 | if (hasOwnProp(b, i)) { | ||
21539 | a[i] = b[i]; | ||
21554 | } | 21540 | } |
21555 | |||
21556 | return a; | ||
21557 | } | 21541 | } |
21558 | 21542 | ||
21559 | function create_utc__createUTC (input, format, locale, strict) { | 21543 | if (hasOwnProp(b, 'toString')) { |
21560 | return createLocalOrUTC(input, format, locale, strict, true).utc(); | 21544 | a.toString = b.toString; |
21561 | } | 21545 | } |
21562 | 21546 | ||
21563 | function defaultParsingFlags() { | 21547 | if (hasOwnProp(b, 'valueOf')) { |
21564 | // We need to deep clone this object. | 21548 | a.valueOf = b.valueOf; |
21565 | return { | ||
21566 | empty : false, | ||
21567 | unusedTokens : [], | ||
21568 | unusedInput : [], | ||
21569 | overflow : -2, | ||
21570 | charsLeftOver : 0, | ||
21571 | nullInput : false, | ||
21572 | invalidMonth : null, | ||
21573 | invalidFormat : false, | ||
21574 | userInvalidated : false, | ||
21575 | iso : false, | ||
21576 | parsedDateParts : [], | ||
21577 | meridiem : null | ||
21578 | }; | ||
21579 | } | 21549 | } |
21580 | 21550 | ||
21581 | function getParsingFlags(m) { | 21551 | return a; |
21582 | if (m._pf == null) { | 21552 | } |
21583 | m._pf = defaultParsingFlags(); | ||
21584 | } | ||
21585 | return m._pf; | ||
21586 | } | ||
21587 | 21553 | ||
21588 | var some; | 21554 | function createUTC (input, format, locale, strict) { |
21589 | if (Array.prototype.some) { | 21555 | return createLocalOrUTC(input, format, locale, strict, true).utc(); |
21590 | some = Array.prototype.some; | 21556 | } |
21591 | } else { | ||
21592 | some = function (fun) { | ||
21593 | var t = Object(this); | ||
21594 | var len = t.length >>> 0; | ||
21595 | 21557 | ||
21596 | for (var i = 0; i < len; i++) { | 21558 | function defaultParsingFlags() { |
21597 | if (i in t && fun.call(this, t[i], i, t)) { | 21559 | // We need to deep clone this object. |
21598 | return true; | 21560 | return { |
21599 | } | 21561 | empty : false, |
21600 | } | 21562 | unusedTokens : [], |
21563 | unusedInput : [], | ||
21564 | overflow : -2, | ||
21565 | charsLeftOver : 0, | ||
21566 | nullInput : false, | ||
21567 | invalidMonth : null, | ||
21568 | invalidFormat : false, | ||
21569 | userInvalidated : false, | ||
21570 | iso : false, | ||
21571 | parsedDateParts : [], | ||
21572 | meridiem : null | ||
21573 | }; | ||
21574 | } | ||
21601 | 21575 | ||
21602 | return false; | 21576 | function getParsingFlags(m) { |
21603 | }; | 21577 | if (m._pf == null) { |
21578 | m._pf = defaultParsingFlags(); | ||
21604 | } | 21579 | } |
21580 | return m._pf; | ||
21581 | } | ||
21605 | 21582 | ||
21606 | function valid__isValid(m) { | 21583 | var some; |
21607 | if (m._isValid == null) { | 21584 | if (Array.prototype.some) { |
21608 | var flags = getParsingFlags(m); | 21585 | some = Array.prototype.some; |
21609 | var parsedParts = some.call(flags.parsedDateParts, function (i) { | 21586 | } else { |
21610 | return i != null; | 21587 | some = function (fun) { |
21611 | }); | 21588 | var t = Object(this); |
21612 | m._isValid = !isNaN(m._d.getTime()) && | 21589 | var len = t.length >>> 0; |
21613 | flags.overflow < 0 && | 21590 | |
21614 | !flags.empty && | 21591 | for (var i = 0; i < len; i++) { |
21615 | !flags.invalidMonth && | 21592 | if (i in t && fun.call(this, t[i], i, t)) { |
21616 | !flags.invalidWeekday && | 21593 | return true; |
21617 | !flags.nullInput && | ||
21618 | !flags.invalidFormat && | ||
21619 | !flags.userInvalidated && | ||
21620 | (!flags.meridiem || (flags.meridiem && parsedParts)); | ||
21621 | |||
21622 | if (m._strict) { | ||
21623 | m._isValid = m._isValid && | ||
21624 | flags.charsLeftOver === 0 && | ||
21625 | flags.unusedTokens.length === 0 && | ||
21626 | flags.bigHour === undefined; | ||
21627 | } | 21594 | } |
21628 | } | 21595 | } |
21629 | return m._isValid; | ||
21630 | } | ||
21631 | 21596 | ||
21632 | function valid__createInvalid (flags) { | 21597 | return false; |
21633 | var m = create_utc__createUTC(NaN); | 21598 | }; |
21634 | if (flags != null) { | 21599 | } |
21635 | extend(getParsingFlags(m), flags); | 21600 | |
21601 | var some$1 = some; | ||
21602 | |||
21603 | function isValid(m) { | ||
21604 | if (m._isValid == null) { | ||
21605 | var flags = getParsingFlags(m); | ||
21606 | var parsedParts = some$1.call(flags.parsedDateParts, function (i) { | ||
21607 | return i != null; | ||
21608 | }); | ||
21609 | var isNowValid = !isNaN(m._d.getTime()) && | ||
21610 | flags.overflow < 0 && | ||
21611 | !flags.empty && | ||
21612 | !flags.invalidMonth && | ||
21613 | !flags.invalidWeekday && | ||
21614 | !flags.nullInput && | ||
21615 | !flags.invalidFormat && | ||
21616 | !flags.userInvalidated && | ||
21617 | (!flags.meridiem || (flags.meridiem && parsedParts)); | ||
21618 | |||
21619 | if (m._strict) { | ||
21620 | isNowValid = isNowValid && | ||
21621 | flags.charsLeftOver === 0 && | ||
21622 | flags.unusedTokens.length === 0 && | ||
21623 | flags.bigHour === undefined; | ||
21624 | } | ||
21625 | |||
21626 | if (Object.isFrozen == null || !Object.isFrozen(m)) { | ||
21627 | m._isValid = isNowValid; | ||
21636 | } | 21628 | } |
21637 | else { | 21629 | else { |
21638 | getParsingFlags(m).userInvalidated = true; | 21630 | return isNowValid; |
21639 | } | 21631 | } |
21640 | |||
21641 | return m; | ||
21642 | } | 21632 | } |
21633 | return m._isValid; | ||
21634 | } | ||
21643 | 21635 | ||
21644 | function isUndefined(input) { | 21636 | function createInvalid (flags) { |
21645 | return input === void 0; | 21637 | var m = createUTC(NaN); |
21638 | if (flags != null) { | ||
21639 | extend(getParsingFlags(m), flags); | ||
21640 | } | ||
21641 | else { | ||
21642 | getParsingFlags(m).userInvalidated = true; | ||
21646 | } | 21643 | } |
21647 | 21644 | ||
21648 | // Plugins that add properties should also add the key here (null value), | 21645 | return m; |
21649 | // so we can properly clone ourselves. | 21646 | } |
21650 | var momentProperties = utils_hooks__hooks.momentProperties = []; | ||
21651 | 21647 | ||
21652 | function copyConfig(to, from) { | 21648 | function isUndefined(input) { |
21653 | var i, prop, val; | 21649 | return input === void 0; |
21650 | } | ||
21654 | 21651 | ||
21655 | if (!isUndefined(from._isAMomentObject)) { | 21652 | // Plugins that add properties should also add the key here (null value), |
21656 | to._isAMomentObject = from._isAMomentObject; | 21653 | // so we can properly clone ourselves. |
21657 | } | 21654 | var momentProperties = hooks.momentProperties = []; |
21658 | if (!isUndefined(from._i)) { | ||
21659 | to._i = from._i; | ||
21660 | } | ||
21661 | if (!isUndefined(from._f)) { | ||
21662 | to._f = from._f; | ||
21663 | } | ||
21664 | if (!isUndefined(from._l)) { | ||
21665 | to._l = from._l; | ||
21666 | } | ||
21667 | if (!isUndefined(from._strict)) { | ||
21668 | to._strict = from._strict; | ||
21669 | } | ||
21670 | if (!isUndefined(from._tzm)) { | ||
21671 | to._tzm = from._tzm; | ||
21672 | } | ||
21673 | if (!isUndefined(from._isUTC)) { | ||
21674 | to._isUTC = from._isUTC; | ||
21675 | } | ||
21676 | if (!isUndefined(from._offset)) { | ||
21677 | to._offset = from._offset; | ||
21678 | } | ||
21679 | if (!isUndefined(from._pf)) { | ||
21680 | to._pf = getParsingFlags(from); | ||
21681 | } | ||
21682 | if (!isUndefined(from._locale)) { | ||
21683 | to._locale = from._locale; | ||
21684 | } | ||
21685 | 21655 | ||
21686 | if (momentProperties.length > 0) { | 21656 | function copyConfig(to, from) { |
21687 | for (i in momentProperties) { | 21657 | var i, prop, val; |
21688 | prop = momentProperties[i]; | ||
21689 | val = from[prop]; | ||
21690 | if (!isUndefined(val)) { | ||
21691 | to[prop] = val; | ||
21692 | } | ||
21693 | } | ||
21694 | } | ||
21695 | 21658 | ||
21696 | return to; | 21659 | if (!isUndefined(from._isAMomentObject)) { |
21660 | to._isAMomentObject = from._isAMomentObject; | ||
21697 | } | 21661 | } |
21698 | 21662 | if (!isUndefined(from._i)) { | |
21699 | var updateInProgress = false; | 21663 | to._i = from._i; |
21700 | |||
21701 | // Moment prototype object | ||
21702 | function Moment(config) { | ||
21703 | copyConfig(this, config); | ||
21704 | this._d = new Date(config._d != null ? config._d.getTime() : NaN); | ||
21705 | // Prevent infinite loop in case updateOffset creates new moment | ||
21706 | // objects. | ||
21707 | if (updateInProgress === false) { | ||
21708 | updateInProgress = true; | ||
21709 | utils_hooks__hooks.updateOffset(this); | ||
21710 | updateInProgress = false; | ||
21711 | } | ||
21712 | } | 21664 | } |
21713 | 21665 | if (!isUndefined(from._f)) { | |
21714 | function isMoment (obj) { | 21666 | to._f = from._f; |
21715 | return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); | 21667 | } |
21668 | if (!isUndefined(from._l)) { | ||
21669 | to._l = from._l; | ||
21670 | } | ||
21671 | if (!isUndefined(from._strict)) { | ||
21672 | to._strict = from._strict; | ||
21673 | } | ||
21674 | if (!isUndefined(from._tzm)) { | ||
21675 | to._tzm = from._tzm; | ||
21676 | } | ||
21677 | if (!isUndefined(from._isUTC)) { | ||
21678 | to._isUTC = from._isUTC; | ||
21679 | } | ||
21680 | if (!isUndefined(from._offset)) { | ||
21681 | to._offset = from._offset; | ||
21682 | } | ||
21683 | if (!isUndefined(from._pf)) { | ||
21684 | to._pf = getParsingFlags(from); | ||
21685 | } | ||
21686 | if (!isUndefined(from._locale)) { | ||
21687 | to._locale = from._locale; | ||
21716 | } | 21688 | } |
21717 | 21689 | ||
21718 | function absFloor (number) { | 21690 | if (momentProperties.length > 0) { |
21719 | if (number < 0) { | 21691 | for (i in momentProperties) { |
21720 | // -0 -> 0 | 21692 | prop = momentProperties[i]; |
21721 | return Math.ceil(number) || 0; | 21693 | val = from[prop]; |
21722 | } else { | 21694 | if (!isUndefined(val)) { |
21723 | return Math.floor(number); | 21695 | to[prop] = val; |
21696 | } | ||
21724 | } | 21697 | } |
21725 | } | 21698 | } |
21726 | 21699 | ||
21727 | function toInt(argumentForCoercion) { | 21700 | return to; |
21728 | var coercedNumber = +argumentForCoercion, | 21701 | } |
21729 | value = 0; | ||
21730 | 21702 | ||
21731 | if (coercedNumber !== 0 && isFinite(coercedNumber)) { | 21703 | var updateInProgress = false; |
21732 | value = absFloor(coercedNumber); | ||
21733 | } | ||
21734 | 21704 | ||
21735 | return value; | 21705 | // Moment prototype object |
21706 | function Moment(config) { | ||
21707 | copyConfig(this, config); | ||
21708 | this._d = new Date(config._d != null ? config._d.getTime() : NaN); | ||
21709 | // Prevent infinite loop in case updateOffset creates new moment | ||
21710 | // objects. | ||
21711 | if (updateInProgress === false) { | ||
21712 | updateInProgress = true; | ||
21713 | hooks.updateOffset(this); | ||
21714 | updateInProgress = false; | ||
21736 | } | 21715 | } |
21716 | } | ||
21737 | 21717 | ||
21738 | // compare two arrays, return the number of differences | 21718 | function isMoment (obj) { |
21739 | function compareArrays(array1, array2, dontConvert) { | 21719 | return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); |
21740 | var len = Math.min(array1.length, array2.length), | 21720 | } |
21741 | lengthDiff = Math.abs(array1.length - array2.length), | ||
21742 | diffs = 0, | ||
21743 | i; | ||
21744 | for (i = 0; i < len; i++) { | ||
21745 | if ((dontConvert && array1[i] !== array2[i]) || | ||
21746 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { | ||
21747 | diffs++; | ||
21748 | } | ||
21749 | } | ||
21750 | return diffs + lengthDiff; | ||
21751 | } | ||
21752 | 21721 | ||
21753 | function warn(msg) { | 21722 | function absFloor (number) { |
21754 | if (utils_hooks__hooks.suppressDeprecationWarnings === false && | 21723 | if (number < 0) { |
21755 | (typeof console !== 'undefined') && console.warn) { | 21724 | // -0 -> 0 |
21756 | console.warn('Deprecation warning: ' + msg); | 21725 | return Math.ceil(number) || 0; |
21757 | } | 21726 | } else { |
21727 | return Math.floor(number); | ||
21758 | } | 21728 | } |
21729 | } | ||
21759 | 21730 | ||
21760 | function deprecate(msg, fn) { | 21731 | function toInt(argumentForCoercion) { |
21761 | var firstTime = true; | 21732 | var coercedNumber = +argumentForCoercion, |
21733 | value = 0; | ||
21762 | 21734 | ||
21763 | return extend(function () { | 21735 | if (coercedNumber !== 0 && isFinite(coercedNumber)) { |
21764 | if (utils_hooks__hooks.deprecationHandler != null) { | 21736 | value = absFloor(coercedNumber); |
21765 | utils_hooks__hooks.deprecationHandler(null, msg); | ||
21766 | } | ||
21767 | if (firstTime) { | ||
21768 | warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); | ||
21769 | firstTime = false; | ||
21770 | } | ||
21771 | return fn.apply(this, arguments); | ||
21772 | }, fn); | ||
21773 | } | 21737 | } |
21774 | 21738 | ||
21775 | var deprecations = {}; | 21739 | return value; |
21740 | } | ||
21776 | 21741 | ||
21777 | function deprecateSimple(name, msg) { | 21742 | // compare two arrays, return the number of differences |
21778 | if (utils_hooks__hooks.deprecationHandler != null) { | 21743 | function compareArrays(array1, array2, dontConvert) { |
21779 | utils_hooks__hooks.deprecationHandler(name, msg); | 21744 | var len = Math.min(array1.length, array2.length), |
21780 | } | 21745 | lengthDiff = Math.abs(array1.length - array2.length), |
21781 | if (!deprecations[name]) { | 21746 | diffs = 0, |
21782 | warn(msg); | 21747 | i; |
21783 | deprecations[name] = true; | 21748 | for (i = 0; i < len; i++) { |
21749 | if ((dontConvert && array1[i] !== array2[i]) || | ||
21750 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { | ||
21751 | diffs++; | ||
21784 | } | 21752 | } |
21785 | } | 21753 | } |
21754 | return diffs + lengthDiff; | ||
21755 | } | ||
21786 | 21756 | ||
21787 | utils_hooks__hooks.suppressDeprecationWarnings = false; | 21757 | function warn(msg) { |
21788 | utils_hooks__hooks.deprecationHandler = null; | 21758 | if (hooks.suppressDeprecationWarnings === false && |
21789 | 21759 | (typeof console !== 'undefined') && console.warn) { | |
21790 | function isFunction(input) { | 21760 | console.warn('Deprecation warning: ' + msg); |
21791 | return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; | ||
21792 | } | 21761 | } |
21762 | } | ||
21793 | 21763 | ||
21794 | function locale_set__set (config) { | 21764 | function deprecate(msg, fn) { |
21795 | var prop, i; | 21765 | var firstTime = true; |
21796 | for (i in config) { | 21766 | |
21797 | prop = config[i]; | 21767 | return extend(function () { |
21798 | if (isFunction(prop)) { | 21768 | if (hooks.deprecationHandler != null) { |
21799 | this[i] = prop; | 21769 | hooks.deprecationHandler(null, msg); |
21800 | } else { | ||
21801 | this['_' + i] = prop; | ||
21802 | } | ||
21803 | } | 21770 | } |
21804 | this._config = config; | 21771 | if (firstTime) { |
21805 | // Lenient ordinal parsing accepts just a number in addition to | 21772 | var args = []; |
21806 | // number + (possibly) stuff coming from _ordinalParseLenient. | 21773 | var arg; |
21807 | this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); | 21774 | for (var i = 0; i < arguments.length; i++) { |
21808 | } | 21775 | arg = ''; |
21809 | 21776 | if (typeof arguments[i] === 'object') { | |
21810 | function mergeConfigs(parentConfig, childConfig) { | 21777 | arg += '\n[' + i + '] '; |
21811 | var res = extend({}, parentConfig), prop; | 21778 | for (var key in arguments[0]) { |
21812 | for (prop in childConfig) { | 21779 | arg += key + ': ' + arguments[0][key] + ', '; |
21813 | if (hasOwnProp(childConfig, prop)) { | 21780 | } |
21814 | if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { | 21781 | arg = arg.slice(0, -2); // Remove trailing comma and space |
21815 | res[prop] = {}; | ||
21816 | extend(res[prop], parentConfig[prop]); | ||
21817 | extend(res[prop], childConfig[prop]); | ||
21818 | } else if (childConfig[prop] != null) { | ||
21819 | res[prop] = childConfig[prop]; | ||
21820 | } else { | 21782 | } else { |
21821 | delete res[prop]; | 21783 | arg = arguments[i]; |
21822 | } | 21784 | } |
21785 | args.push(arg); | ||
21823 | } | 21786 | } |
21787 | warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); | ||
21788 | firstTime = false; | ||
21824 | } | 21789 | } |
21825 | for (prop in parentConfig) { | 21790 | return fn.apply(this, arguments); |
21826 | if (hasOwnProp(parentConfig, prop) && | 21791 | }, fn); |
21827 | !hasOwnProp(childConfig, prop) && | 21792 | } |
21828 | isObject(parentConfig[prop])) { | 21793 | |
21829 | // make sure changes to properties don't modify parent config | 21794 | var deprecations = {}; |
21830 | res[prop] = extend({}, res[prop]); | 21795 | |
21831 | } | 21796 | function deprecateSimple(name, msg) { |
21832 | } | 21797 | if (hooks.deprecationHandler != null) { |
21833 | return res; | 21798 | hooks.deprecationHandler(name, msg); |
21834 | } | 21799 | } |
21800 | if (!deprecations[name]) { | ||
21801 | warn(msg); | ||
21802 | deprecations[name] = true; | ||
21803 | } | ||
21804 | } | ||
21805 | |||
21806 | hooks.suppressDeprecationWarnings = false; | ||
21807 | hooks.deprecationHandler = null; | ||
21835 | 21808 | ||
21836 | function Locale(config) { | 21809 | function isFunction(input) { |
21837 | if (config != null) { | 21810 | return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; |
21838 | this.set(config); | 21811 | } |
21812 | |||
21813 | function set (config) { | ||
21814 | var prop, i; | ||
21815 | for (i in config) { | ||
21816 | prop = config[i]; | ||
21817 | if (isFunction(prop)) { | ||
21818 | this[i] = prop; | ||
21819 | } else { | ||
21820 | this['_' + i] = prop; | ||
21839 | } | 21821 | } |
21840 | } | 21822 | } |
21823 | this._config = config; | ||
21824 | // Lenient ordinal parsing accepts just a number in addition to | ||
21825 | // number + (possibly) stuff coming from _ordinalParseLenient. | ||
21826 | this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); | ||
21827 | } | ||
21841 | 21828 | ||
21842 | var keys; | 21829 | function mergeConfigs(parentConfig, childConfig) { |
21843 | 21830 | var res = extend({}, parentConfig), prop; | |
21844 | if (Object.keys) { | 21831 | for (prop in childConfig) { |
21845 | keys = Object.keys; | 21832 | if (hasOwnProp(childConfig, prop)) { |
21846 | } else { | 21833 | if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { |
21847 | keys = function (obj) { | 21834 | res[prop] = {}; |
21848 | var i, res = []; | 21835 | extend(res[prop], parentConfig[prop]); |
21849 | for (i in obj) { | 21836 | extend(res[prop], childConfig[prop]); |
21850 | if (hasOwnProp(obj, i)) { | 21837 | } else if (childConfig[prop] != null) { |
21851 | res.push(i); | 21838 | res[prop] = childConfig[prop]; |
21852 | } | 21839 | } else { |
21840 | delete res[prop]; | ||
21853 | } | 21841 | } |
21854 | return res; | 21842 | } |
21855 | }; | ||
21856 | } | 21843 | } |
21844 | for (prop in parentConfig) { | ||
21845 | if (hasOwnProp(parentConfig, prop) && | ||
21846 | !hasOwnProp(childConfig, prop) && | ||
21847 | isObject(parentConfig[prop])) { | ||
21848 | // make sure changes to properties don't modify parent config | ||
21849 | res[prop] = extend({}, res[prop]); | ||
21850 | } | ||
21851 | } | ||
21852 | return res; | ||
21853 | } | ||
21857 | 21854 | ||
21858 | var defaultCalendar = { | 21855 | function Locale(config) { |
21859 | sameDay : '[Today at] LT', | 21856 | if (config != null) { |
21860 | nextDay : '[Tomorrow at] LT', | 21857 | this.set(config); |
21861 | nextWeek : 'dddd [at] LT', | ||
21862 | lastDay : '[Yesterday at] LT', | ||
21863 | lastWeek : '[Last] dddd [at] LT', | ||
21864 | sameElse : 'L' | ||
21865 | }; | ||
21866 | |||
21867 | function locale_calendar__calendar (key, mom, now) { | ||
21868 | var output = this._calendar[key] || this._calendar['sameElse']; | ||
21869 | return isFunction(output) ? output.call(mom, now) : output; | ||
21870 | } | 21858 | } |
21859 | } | ||
21860 | |||
21861 | var keys; | ||
21871 | 21862 | ||
21872 | var defaultLongDateFormat = { | 21863 | if (Object.keys) { |
21873 | LTS : 'h:mm:ss A', | 21864 | keys = Object.keys; |
21874 | LT : 'h:mm A', | 21865 | } else { |
21875 | L : 'MM/DD/YYYY', | 21866 | keys = function (obj) { |
21876 | LL : 'MMMM D, YYYY', | 21867 | var i, res = []; |
21877 | LLL : 'MMMM D, YYYY h:mm A', | 21868 | for (i in obj) { |
21878 | LLLL : 'dddd, MMMM D, YYYY h:mm A' | 21869 | if (hasOwnProp(obj, i)) { |
21870 | res.push(i); | ||
21871 | } | ||
21872 | } | ||
21873 | return res; | ||
21879 | }; | 21874 | }; |
21875 | } | ||
21880 | 21876 | ||
21881 | function longDateFormat (key) { | 21877 | var keys$1 = keys; |
21882 | var format = this._longDateFormat[key], | ||
21883 | formatUpper = this._longDateFormat[key.toUpperCase()]; | ||
21884 | 21878 | ||
21885 | if (format || !formatUpper) { | 21879 | var defaultCalendar = { |
21886 | return format; | 21880 | sameDay : '[Today at] LT', |
21887 | } | 21881 | nextDay : '[Tomorrow at] LT', |
21882 | nextWeek : 'dddd [at] LT', | ||
21883 | lastDay : '[Yesterday at] LT', | ||
21884 | lastWeek : '[Last] dddd [at] LT', | ||
21885 | sameElse : 'L' | ||
21886 | }; | ||
21888 | 21887 | ||
21889 | this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { | 21888 | function calendar (key, mom, now) { |
21890 | return val.slice(1); | 21889 | var output = this._calendar[key] || this._calendar['sameElse']; |
21891 | }); | 21890 | return isFunction(output) ? output.call(mom, now) : output; |
21891 | } | ||
21892 | 21892 | ||
21893 | return this._longDateFormat[key]; | 21893 | var defaultLongDateFormat = { |
21894 | } | 21894 | LTS : 'h:mm:ss A', |
21895 | LT : 'h:mm A', | ||
21896 | L : 'MM/DD/YYYY', | ||
21897 | LL : 'MMMM D, YYYY', | ||
21898 | LLL : 'MMMM D, YYYY h:mm A', | ||
21899 | LLLL : 'dddd, MMMM D, YYYY h:mm A' | ||
21900 | }; | ||
21895 | 21901 | ||
21896 | var defaultInvalidDate = 'Invalid date'; | 21902 | function longDateFormat (key) { |
21903 | var format = this._longDateFormat[key], | ||
21904 | formatUpper = this._longDateFormat[key.toUpperCase()]; | ||
21897 | 21905 | ||
21898 | function invalidDate () { | 21906 | if (format || !formatUpper) { |
21899 | return this._invalidDate; | 21907 | return format; |
21900 | } | 21908 | } |
21901 | 21909 | ||
21902 | var defaultOrdinal = '%d'; | 21910 | this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { |
21903 | var defaultOrdinalParse = /\d{1,2}/; | 21911 | return val.slice(1); |
21912 | }); | ||
21904 | 21913 | ||
21905 | function ordinal (number) { | 21914 | return this._longDateFormat[key]; |
21906 | return this._ordinal.replace('%d', number); | 21915 | } |
21907 | } | ||
21908 | 21916 | ||
21909 | var defaultRelativeTime = { | 21917 | var defaultInvalidDate = 'Invalid date'; |
21910 | future : 'in %s', | ||
21911 | past : '%s ago', | ||
21912 | s : 'a few seconds', | ||
21913 | m : 'a minute', | ||
21914 | mm : '%d minutes', | ||
21915 | h : 'an hour', | ||
21916 | hh : '%d hours', | ||
21917 | d : 'a day', | ||
21918 | dd : '%d days', | ||
21919 | M : 'a month', | ||
21920 | MM : '%d months', | ||
21921 | y : 'a year', | ||
21922 | yy : '%d years' | ||
21923 | }; | ||
21924 | 21918 | ||
21925 | function relative__relativeTime (number, withoutSuffix, string, isFuture) { | 21919 | function invalidDate () { |
21926 | var output = this._relativeTime[string]; | 21920 | return this._invalidDate; |
21927 | return (isFunction(output)) ? | 21921 | } |
21928 | output(number, withoutSuffix, string, isFuture) : | ||
21929 | output.replace(/%d/i, number); | ||
21930 | } | ||
21931 | 21922 | ||
21932 | function pastFuture (diff, output) { | 21923 | var defaultOrdinal = '%d'; |
21933 | var format = this._relativeTime[diff > 0 ? 'future' : 'past']; | 21924 | var defaultOrdinalParse = /\d{1,2}/; |
21934 | return isFunction(format) ? format(output) : format.replace(/%s/i, output); | ||
21935 | } | ||
21936 | 21925 | ||
21937 | var aliases = {}; | 21926 | function ordinal (number) { |
21927 | return this._ordinal.replace('%d', number); | ||
21928 | } | ||
21938 | 21929 | ||
21939 | function addUnitAlias (unit, shorthand) { | 21930 | var defaultRelativeTime = { |
21940 | var lowerCase = unit.toLowerCase(); | 21931 | future : 'in %s', |
21941 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; | 21932 | past : '%s ago', |
21942 | } | 21933 | s : 'a few seconds', |
21934 | m : 'a minute', | ||
21935 | mm : '%d minutes', | ||
21936 | h : 'an hour', | ||
21937 | hh : '%d hours', | ||
21938 | d : 'a day', | ||
21939 | dd : '%d days', | ||
21940 | M : 'a month', | ||
21941 | MM : '%d months', | ||
21942 | y : 'a year', | ||
21943 | yy : '%d years' | ||
21944 | }; | ||
21943 | 21945 | ||
21944 | function normalizeUnits(units) { | 21946 | function relativeTime (number, withoutSuffix, string, isFuture) { |
21945 | return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; | 21947 | var output = this._relativeTime[string]; |
21946 | } | 21948 | return (isFunction(output)) ? |
21949 | output(number, withoutSuffix, string, isFuture) : | ||
21950 | output.replace(/%d/i, number); | ||
21951 | } | ||
21947 | 21952 | ||
21948 | function normalizeObjectUnits(inputObject) { | 21953 | function pastFuture (diff, output) { |
21949 | var normalizedInput = {}, | 21954 | var format = this._relativeTime[diff > 0 ? 'future' : 'past']; |
21950 | normalizedProp, | 21955 | return isFunction(format) ? format(output) : format.replace(/%s/i, output); |
21951 | prop; | 21956 | } |
21952 | 21957 | ||
21953 | for (prop in inputObject) { | 21958 | var aliases = {}; |
21954 | if (hasOwnProp(inputObject, prop)) { | ||
21955 | normalizedProp = normalizeUnits(prop); | ||
21956 | if (normalizedProp) { | ||
21957 | normalizedInput[normalizedProp] = inputObject[prop]; | ||
21958 | } | ||
21959 | } | ||
21960 | } | ||
21961 | 21959 | ||
21962 | return normalizedInput; | 21960 | function addUnitAlias (unit, shorthand) { |
21963 | } | 21961 | var lowerCase = unit.toLowerCase(); |
21962 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; | ||
21963 | } | ||
21964 | 21964 | ||
21965 | var priorities = {}; | 21965 | function normalizeUnits(units) { |
21966 | return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; | ||
21967 | } | ||
21966 | 21968 | ||
21967 | function addUnitPriority(unit, priority) { | 21969 | function normalizeObjectUnits(inputObject) { |
21968 | priorities[unit] = priority; | 21970 | var normalizedInput = {}, |
21969 | } | 21971 | normalizedProp, |
21972 | prop; | ||
21970 | 21973 | ||
21971 | function getPrioritizedUnits(unitsObj) { | 21974 | for (prop in inputObject) { |
21972 | var units = []; | 21975 | if (hasOwnProp(inputObject, prop)) { |
21973 | for (var u in unitsObj) { | 21976 | normalizedProp = normalizeUnits(prop); |
21974 | units.push({unit: u, priority: priorities[u]}); | 21977 | if (normalizedProp) { |
21978 | normalizedInput[normalizedProp] = inputObject[prop]; | ||
21979 | } | ||
21975 | } | 21980 | } |
21976 | units.sort(function (a, b) { | ||
21977 | return a.priority - b.priority; | ||
21978 | }); | ||
21979 | return units; | ||
21980 | } | 21981 | } |
21981 | 21982 | ||
21982 | function makeGetSet (unit, keepTime) { | 21983 | return normalizedInput; |
21983 | return function (value) { | 21984 | } |
21984 | if (value != null) { | 21985 | |
21985 | get_set__set(this, unit, value); | 21986 | var priorities = {}; |
21986 | utils_hooks__hooks.updateOffset(this, keepTime); | 21987 | |
21987 | return this; | 21988 | function addUnitPriority(unit, priority) { |
21988 | } else { | 21989 | priorities[unit] = priority; |
21989 | return get_set__get(this, unit); | 21990 | } |
21990 | } | ||
21991 | }; | ||
21992 | } | ||
21993 | 21991 | ||
21994 | function get_set__get (mom, unit) { | 21992 | function getPrioritizedUnits(unitsObj) { |
21995 | return mom.isValid() ? | 21993 | var units = []; |
21996 | mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; | 21994 | for (var u in unitsObj) { |
21995 | units.push({unit: u, priority: priorities[u]}); | ||
21997 | } | 21996 | } |
21997 | units.sort(function (a, b) { | ||
21998 | return a.priority - b.priority; | ||
21999 | }); | ||
22000 | return units; | ||
22001 | } | ||
21998 | 22002 | ||
21999 | function get_set__set (mom, unit, value) { | 22003 | function makeGetSet (unit, keepTime) { |
22000 | if (mom.isValid()) { | 22004 | return function (value) { |
22001 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); | 22005 | if (value != null) { |
22006 | set$1(this, unit, value); | ||
22007 | hooks.updateOffset(this, keepTime); | ||
22008 | return this; | ||
22009 | } else { | ||
22010 | return get(this, unit); | ||
22002 | } | 22011 | } |
22012 | }; | ||
22013 | } | ||
22014 | |||
22015 | function get (mom, unit) { | ||
22016 | return mom.isValid() ? | ||
22017 | mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; | ||
22018 | } | ||
22019 | |||
22020 | function set$1 (mom, unit, value) { | ||
22021 | if (mom.isValid()) { | ||
22022 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); | ||
22003 | } | 22023 | } |
22024 | } | ||
22004 | 22025 | ||
22005 | // MOMENTS | 22026 | // MOMENTS |
22006 | 22027 | ||
22007 | function stringGet (units) { | 22028 | function stringGet (units) { |
22008 | units = normalizeUnits(units); | 22029 | units = normalizeUnits(units); |
22009 | if (isFunction(this[units])) { | 22030 | if (isFunction(this[units])) { |
22010 | return this[units](); | 22031 | return this[units](); |
22011 | } | ||
22012 | return this; | ||
22013 | } | 22032 | } |
22033 | return this; | ||
22034 | } | ||
22014 | 22035 | ||
22015 | 22036 | ||
22016 | function stringSet (units, value) { | 22037 | function stringSet (units, value) { |
22017 | if (typeof units === 'object') { | 22038 | if (typeof units === 'object') { |
22018 | units = normalizeObjectUnits(units); | 22039 | units = normalizeObjectUnits(units); |
22019 | var prioritized = getPrioritizedUnits(units); | 22040 | var prioritized = getPrioritizedUnits(units); |
22020 | for (var i = 0; i < prioritized.length; i++) { | 22041 | for (var i = 0; i < prioritized.length; i++) { |
22021 | this[prioritized[i].unit](units[prioritized[i].unit]); | 22042 | this[prioritized[i].unit](units[prioritized[i].unit]); |
22022 | } | 22043 | } |
22023 | } else { | 22044 | } else { |
22024 | units = normalizeUnits(units); | 22045 | units = normalizeUnits(units); |
22025 | if (isFunction(this[units])) { | 22046 | if (isFunction(this[units])) { |
22026 | return this[units](value); | 22047 | return this[units](value); |
22027 | } | ||
22028 | } | 22048 | } |
22029 | return this; | ||
22030 | } | 22049 | } |
22050 | return this; | ||
22051 | } | ||
22031 | 22052 | ||
22032 | function zeroFill(number, targetLength, forceSign) { | 22053 | function zeroFill(number, targetLength, forceSign) { |
22033 | var absNumber = '' + Math.abs(number), | 22054 | var absNumber = '' + Math.abs(number), |
22034 | zerosToFill = targetLength - absNumber.length, | 22055 | zerosToFill = targetLength - absNumber.length, |
22035 | sign = number >= 0; | 22056 | sign = number >= 0; |
22036 | return (sign ? (forceSign ? '+' : '') : '-') + | 22057 | return (sign ? (forceSign ? '+' : '') : '-') + |
22037 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; | 22058 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; |
22038 | } | 22059 | } |
22039 | 22060 | ||
22040 | var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; | 22061 | var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; |
22041 | 22062 | ||
22042 | var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; | 22063 | var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; |
22043 | 22064 | ||
22044 | var formatFunctions = {}; | 22065 | var formatFunctions = {}; |
22045 | 22066 | ||
22046 | var formatTokenFunctions = {}; | 22067 | var formatTokenFunctions = {}; |
22047 | 22068 | ||
22048 | // token: 'M' | 22069 | // token: 'M' |
22049 | // padded: ['MM', 2] | 22070 | // padded: ['MM', 2] |
22050 | // ordinal: 'Mo' | 22071 | // ordinal: 'Mo' |
22051 | // callback: function () { this.month() + 1 } | 22072 | // callback: function () { this.month() + 1 } |
22052 | function addFormatToken (token, padded, ordinal, callback) { | 22073 | function addFormatToken (token, padded, ordinal, callback) { |
22053 | var func = callback; | 22074 | var func = callback; |
22054 | if (typeof callback === 'string') { | 22075 | if (typeof callback === 'string') { |
22055 | func = function () { | 22076 | func = function () { |
22056 | return this[callback](); | 22077 | return this[callback](); |
22057 | }; | 22078 | }; |
22058 | } | 22079 | } |
22059 | if (token) { | 22080 | if (token) { |
22060 | formatTokenFunctions[token] = func; | 22081 | formatTokenFunctions[token] = func; |
22061 | } | 22082 | } |
22062 | if (padded) { | 22083 | if (padded) { |
22063 | formatTokenFunctions[padded[0]] = function () { | 22084 | formatTokenFunctions[padded[0]] = function () { |
22064 | return zeroFill(func.apply(this, arguments), padded[1], padded[2]); | 22085 | return zeroFill(func.apply(this, arguments), padded[1], padded[2]); |
22065 | }; | 22086 | }; |
22066 | } | 22087 | } |
22067 | if (ordinal) { | 22088 | if (ordinal) { |
22068 | formatTokenFunctions[ordinal] = function () { | 22089 | formatTokenFunctions[ordinal] = function () { |
22069 | return this.localeData().ordinal(func.apply(this, arguments), token); | 22090 | return this.localeData().ordinal(func.apply(this, arguments), token); |
22070 | }; | 22091 | }; |
22071 | } | ||
22072 | } | 22092 | } |
22093 | } | ||
22073 | 22094 | ||
22074 | function removeFormattingTokens(input) { | 22095 | function removeFormattingTokens(input) { |
22075 | if (input.match(/\[[\s\S]/)) { | 22096 | if (input.match(/\[[\s\S]/)) { |
22076 | return input.replace(/^\[|\]$/g, ''); | 22097 | return input.replace(/^\[|\]$/g, ''); |
22077 | } | ||
22078 | return input.replace(/\\/g, ''); | ||
22079 | } | 22098 | } |
22099 | return input.replace(/\\/g, ''); | ||
22100 | } | ||
22080 | 22101 | ||
22081 | function makeFormatFunction(format) { | 22102 | function makeFormatFunction(format) { |
22082 | var array = format.match(formattingTokens), i, length; | 22103 | var array = format.match(formattingTokens), i, length; |
22083 | 22104 | ||
22084 | for (i = 0, length = array.length; i < length; i++) { | 22105 | for (i = 0, length = array.length; i < length; i++) { |
22085 | if (formatTokenFunctions[array[i]]) { | 22106 | if (formatTokenFunctions[array[i]]) { |
22086 | array[i] = formatTokenFunctions[array[i]]; | 22107 | array[i] = formatTokenFunctions[array[i]]; |
22087 | } else { | 22108 | } else { |
22088 | array[i] = removeFormattingTokens(array[i]); | 22109 | array[i] = removeFormattingTokens(array[i]); |
22089 | } | ||
22090 | } | 22110 | } |
22091 | |||
22092 | return function (mom) { | ||
22093 | var output = '', i; | ||
22094 | for (i = 0; i < length; i++) { | ||
22095 | output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; | ||
22096 | } | ||
22097 | return output; | ||
22098 | }; | ||
22099 | } | 22111 | } |
22100 | 22112 | ||
22101 | // format date using native date object | 22113 | return function (mom) { |
22102 | function formatMoment(m, format) { | 22114 | var output = '', i; |
22103 | if (!m.isValid()) { | 22115 | for (i = 0; i < length; i++) { |
22104 | return m.localeData().invalidDate(); | 22116 | output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; |
22105 | } | 22117 | } |
22118 | return output; | ||
22119 | }; | ||
22120 | } | ||
22106 | 22121 | ||
22107 | format = expandFormat(format, m.localeData()); | 22122 | // format date using native date object |
22108 | formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); | 22123 | function formatMoment(m, format) { |
22109 | 22124 | if (!m.isValid()) { | |
22110 | return formatFunctions[format](m); | 22125 | return m.localeData().invalidDate(); |
22111 | } | 22126 | } |
22112 | 22127 | ||
22113 | function expandFormat(format, locale) { | 22128 | format = expandFormat(format, m.localeData()); |
22114 | var i = 5; | 22129 | formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); |
22115 | 22130 | ||
22116 | function replaceLongDateFormatTokens(input) { | 22131 | return formatFunctions[format](m); |
22117 | return locale.longDateFormat(input) || input; | 22132 | } |
22118 | } | ||
22119 | 22133 | ||
22120 | localFormattingTokens.lastIndex = 0; | 22134 | function expandFormat(format, locale) { |
22121 | while (i >= 0 && localFormattingTokens.test(format)) { | 22135 | var i = 5; |
22122 | format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); | ||
22123 | localFormattingTokens.lastIndex = 0; | ||
22124 | i -= 1; | ||
22125 | } | ||
22126 | 22136 | ||
22127 | return format; | 22137 | function replaceLongDateFormatTokens(input) { |
22138 | return locale.longDateFormat(input) || input; | ||
22128 | } | 22139 | } |
22129 | 22140 | ||
22130 | var match1 = /\d/; // 0 - 9 | 22141 | localFormattingTokens.lastIndex = 0; |
22131 | var match2 = /\d\d/; // 00 - 99 | 22142 | while (i >= 0 && localFormattingTokens.test(format)) { |
22132 | var match3 = /\d{3}/; // 000 - 999 | 22143 | format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); |
22133 | var match4 = /\d{4}/; // 0000 - 9999 | 22144 | localFormattingTokens.lastIndex = 0; |
22134 | var match6 = /[+-]?\d{6}/; // -999999 - 999999 | 22145 | i -= 1; |
22135 | var match1to2 = /\d\d?/; // 0 - 99 | 22146 | } |
22136 | var match3to4 = /\d\d\d\d?/; // 999 - 9999 | ||
22137 | var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 | ||
22138 | var match1to3 = /\d{1,3}/; // 0 - 999 | ||
22139 | var match1to4 = /\d{1,4}/; // 0 - 9999 | ||
22140 | var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 | ||
22141 | 22147 | ||
22142 | var matchUnsigned = /\d+/; // 0 - inf | 22148 | return format; |
22143 | var matchSigned = /[+-]?\d+/; // -inf - inf | 22149 | } |
22144 | 22150 | ||
22145 | var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z | 22151 | var match1 = /\d/; // 0 - 9 |
22146 | var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z | 22152 | var match2 = /\d\d/; // 00 - 99 |
22153 | var match3 = /\d{3}/; // 000 - 999 | ||
22154 | var match4 = /\d{4}/; // 0000 - 9999 | ||
22155 | var match6 = /[+-]?\d{6}/; // -999999 - 999999 | ||
22156 | var match1to2 = /\d\d?/; // 0 - 99 | ||
22157 | var match3to4 = /\d\d\d\d?/; // 999 - 9999 | ||
22158 | var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 | ||
22159 | var match1to3 = /\d{1,3}/; // 0 - 999 | ||
22160 | var match1to4 = /\d{1,4}/; // 0 - 9999 | ||
22161 | var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 | ||
22147 | 22162 | ||
22148 | var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 | 22163 | var matchUnsigned = /\d+/; // 0 - inf |
22164 | var matchSigned = /[+-]?\d+/; // -inf - inf | ||
22149 | 22165 | ||
22150 | // any word (or two) characters or numbers including two/three word month in arabic. | 22166 | var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z |
22151 | // includes scottish gaelic two word and hyphenated months | 22167 | var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z |
22152 | var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; | ||
22153 | 22168 | ||
22169 | var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 | ||
22154 | 22170 | ||
22155 | var regexes = {}; | 22171 | // any word (or two) characters or numbers including two/three word month in arabic. |
22172 | // includes scottish gaelic two word and hyphenated months | ||
22173 | var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; | ||
22156 | 22174 | ||
22157 | function addRegexToken (token, regex, strictRegex) { | ||
22158 | regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { | ||
22159 | return (isStrict && strictRegex) ? strictRegex : regex; | ||
22160 | }; | ||
22161 | } | ||
22162 | 22175 | ||
22163 | function getParseRegexForToken (token, config) { | 22176 | var regexes = {}; |
22164 | if (!hasOwnProp(regexes, token)) { | ||
22165 | return new RegExp(unescapeFormat(token)); | ||
22166 | } | ||
22167 | 22177 | ||
22168 | return regexes[token](config._strict, config._locale); | 22178 | function addRegexToken (token, regex, strictRegex) { |
22169 | } | 22179 | regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { |
22180 | return (isStrict && strictRegex) ? strictRegex : regex; | ||
22181 | }; | ||
22182 | } | ||
22170 | 22183 | ||
22171 | // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript | 22184 | function getParseRegexForToken (token, config) { |
22172 | function unescapeFormat(s) { | 22185 | if (!hasOwnProp(regexes, token)) { |
22173 | return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { | 22186 | return new RegExp(unescapeFormat(token)); |
22174 | return p1 || p2 || p3 || p4; | ||
22175 | })); | ||
22176 | } | 22187 | } |
22177 | 22188 | ||
22178 | function regexEscape(s) { | 22189 | return regexes[token](config._strict, config._locale); |
22179 | return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); | 22190 | } |
22180 | } | ||
22181 | 22191 | ||
22182 | var tokens = {}; | 22192 | // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript |
22193 | function unescapeFormat(s) { | ||
22194 | return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { | ||
22195 | return p1 || p2 || p3 || p4; | ||
22196 | })); | ||
22197 | } | ||
22183 | 22198 | ||
22184 | function addParseToken (token, callback) { | 22199 | function regexEscape(s) { |
22185 | var i, func = callback; | 22200 | return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); |
22186 | if (typeof token === 'string') { | 22201 | } |
22187 | token = [token]; | ||
22188 | } | ||
22189 | if (typeof callback === 'number') { | ||
22190 | func = function (input, array) { | ||
22191 | array[callback] = toInt(input); | ||
22192 | }; | ||
22193 | } | ||
22194 | for (i = 0; i < token.length; i++) { | ||
22195 | tokens[token[i]] = func; | ||
22196 | } | ||
22197 | } | ||
22198 | 22202 | ||
22199 | function addWeekParseToken (token, callback) { | 22203 | var tokens = {}; |
22200 | addParseToken(token, function (input, array, config, token) { | 22204 | |
22201 | config._w = config._w || {}; | 22205 | function addParseToken (token, callback) { |
22202 | callback(input, config._w, config, token); | 22206 | var i, func = callback; |
22203 | }); | 22207 | if (typeof token === 'string') { |
22208 | token = [token]; | ||
22204 | } | 22209 | } |
22210 | if (isNumber(callback)) { | ||
22211 | func = function (input, array) { | ||
22212 | array[callback] = toInt(input); | ||
22213 | }; | ||
22214 | } | ||
22215 | for (i = 0; i < token.length; i++) { | ||
22216 | tokens[token[i]] = func; | ||
22217 | } | ||
22218 | } | ||
22205 | 22219 | ||
22206 | function addTimeToArrayFromToken(token, input, config) { | 22220 | function addWeekParseToken (token, callback) { |
22207 | if (input != null && hasOwnProp(tokens, token)) { | 22221 | addParseToken(token, function (input, array, config, token) { |
22208 | tokens[token](input, config._a, config, token); | 22222 | config._w = config._w || {}; |
22209 | } | 22223 | callback(input, config._w, config, token); |
22224 | }); | ||
22225 | } | ||
22226 | |||
22227 | function addTimeToArrayFromToken(token, input, config) { | ||
22228 | if (input != null && hasOwnProp(tokens, token)) { | ||
22229 | tokens[token](input, config._a, config, token); | ||
22210 | } | 22230 | } |
22231 | } | ||
22211 | 22232 | ||
22212 | var YEAR = 0; | 22233 | var YEAR = 0; |
22213 | var MONTH = 1; | 22234 | var MONTH = 1; |
22214 | var DATE = 2; | 22235 | var DATE = 2; |
22215 | var HOUR = 3; | 22236 | var HOUR = 3; |
22216 | var MINUTE = 4; | 22237 | var MINUTE = 4; |
22217 | var SECOND = 5; | 22238 | var SECOND = 5; |
22218 | var MILLISECOND = 6; | 22239 | var MILLISECOND = 6; |
22219 | var WEEK = 7; | 22240 | var WEEK = 7; |
22220 | var WEEKDAY = 8; | 22241 | var WEEKDAY = 8; |
22221 | 22242 | ||
22222 | var indexOf; | 22243 | var indexOf; |
22223 | 22244 | ||
22224 | if (Array.prototype.indexOf) { | 22245 | if (Array.prototype.indexOf) { |
22225 | indexOf = Array.prototype.indexOf; | 22246 | indexOf = Array.prototype.indexOf; |
22226 | } else { | 22247 | } else { |
22227 | indexOf = function (o) { | 22248 | indexOf = function (o) { |
22228 | // I know | 22249 | // I know |
22229 | var i; | 22250 | var i; |
22230 | for (i = 0; i < this.length; ++i) { | 22251 | for (i = 0; i < this.length; ++i) { |
22231 | if (this[i] === o) { | 22252 | if (this[i] === o) { |
22232 | return i; | 22253 | return i; |
22233 | } | ||
22234 | } | 22254 | } |
22235 | return -1; | 22255 | } |
22236 | }; | 22256 | return -1; |
22237 | } | 22257 | }; |
22258 | } | ||
22238 | 22259 | ||
22239 | function daysInMonth(year, month) { | 22260 | var indexOf$1 = indexOf; |
22240 | return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); | ||
22241 | } | ||
22242 | 22261 | ||
22243 | // FORMATTING | 22262 | function daysInMonth(year, month) { |
22263 | return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); | ||
22264 | } | ||
22244 | 22265 | ||
22245 | addFormatToken('M', ['MM', 2], 'Mo', function () { | 22266 | // FORMATTING |
22246 | return this.month() + 1; | ||
22247 | }); | ||
22248 | 22267 | ||
22249 | addFormatToken('MMM', 0, 0, function (format) { | 22268 | addFormatToken('M', ['MM', 2], 'Mo', function () { |
22250 | return this.localeData().monthsShort(this, format); | 22269 | return this.month() + 1; |
22251 | }); | 22270 | }); |
22252 | 22271 | ||
22253 | addFormatToken('MMMM', 0, 0, function (format) { | 22272 | addFormatToken('MMM', 0, 0, function (format) { |
22254 | return this.localeData().months(this, format); | 22273 | return this.localeData().monthsShort(this, format); |
22255 | }); | 22274 | }); |
22256 | 22275 | ||
22257 | // ALIASES | 22276 | addFormatToken('MMMM', 0, 0, function (format) { |
22277 | return this.localeData().months(this, format); | ||
22278 | }); | ||
22258 | 22279 | ||
22259 | addUnitAlias('month', 'M'); | 22280 | // ALIASES |
22260 | 22281 | ||
22261 | // PRIORITY | 22282 | addUnitAlias('month', 'M'); |
22262 | 22283 | ||
22263 | addUnitPriority('month', 8); | 22284 | // PRIORITY |
22264 | 22285 | ||
22265 | // PARSING | 22286 | addUnitPriority('month', 8); |
22266 | 22287 | ||
22267 | addRegexToken('M', match1to2); | 22288 | // PARSING |
22268 | addRegexToken('MM', match1to2, match2); | ||
22269 | addRegexToken('MMM', function (isStrict, locale) { | ||
22270 | return locale.monthsShortRegex(isStrict); | ||
22271 | }); | ||
22272 | addRegexToken('MMMM', function (isStrict, locale) { | ||
22273 | return locale.monthsRegex(isStrict); | ||
22274 | }); | ||
22275 | 22289 | ||
22276 | addParseToken(['M', 'MM'], function (input, array) { | 22290 | addRegexToken('M', match1to2); |
22277 | array[MONTH] = toInt(input) - 1; | 22291 | addRegexToken('MM', match1to2, match2); |
22278 | }); | 22292 | addRegexToken('MMM', function (isStrict, locale) { |
22293 | return locale.monthsShortRegex(isStrict); | ||
22294 | }); | ||
22295 | addRegexToken('MMMM', function (isStrict, locale) { | ||
22296 | return locale.monthsRegex(isStrict); | ||
22297 | }); | ||
22279 | 22298 | ||
22280 | addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { | 22299 | addParseToken(['M', 'MM'], function (input, array) { |
22281 | var month = config._locale.monthsParse(input, token, config._strict); | 22300 | array[MONTH] = toInt(input) - 1; |
22282 | // if we didn't find a month name, mark the date as invalid. | 22301 | }); |
22283 | if (month != null) { | ||
22284 | array[MONTH] = month; | ||
22285 | } else { | ||
22286 | getParsingFlags(config).invalidMonth = input; | ||
22287 | } | ||
22288 | }); | ||
22289 | 22302 | ||
22290 | // LOCALES | 22303 | addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { |
22304 | var month = config._locale.monthsParse(input, token, config._strict); | ||
22305 | // if we didn't find a month name, mark the date as invalid. | ||
22306 | if (month != null) { | ||
22307 | array[MONTH] = month; | ||
22308 | } else { | ||
22309 | getParsingFlags(config).invalidMonth = input; | ||
22310 | } | ||
22311 | }); | ||
22312 | |||
22313 | // LOCALES | ||
22291 | 22314 | ||
22292 | var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; | 22315 | var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; |
22293 | var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); | 22316 | var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); |
22294 | function localeMonths (m, format) { | 22317 | function localeMonths (m, format) { |
22295 | return isArray(this._months) ? this._months[m.month()] : | 22318 | if (!m) { |
22296 | this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; | 22319 | return this._months; |
22297 | } | 22320 | } |
22321 | return isArray(this._months) ? this._months[m.month()] : | ||
22322 | this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; | ||
22323 | } | ||
22298 | 22324 | ||
22299 | var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); | 22325 | var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); |
22300 | function localeMonthsShort (m, format) { | 22326 | function localeMonthsShort (m, format) { |
22301 | return isArray(this._monthsShort) ? this._monthsShort[m.month()] : | 22327 | if (!m) { |
22302 | this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; | 22328 | return this._monthsShort; |
22303 | } | 22329 | } |
22330 | return isArray(this._monthsShort) ? this._monthsShort[m.month()] : | ||
22331 | this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; | ||
22332 | } | ||
22304 | 22333 | ||
22305 | function units_month__handleStrictParse(monthName, format, strict) { | 22334 | function handleStrictParse(monthName, format, strict) { |
22306 | var i, ii, mom, llc = monthName.toLocaleLowerCase(); | 22335 | var i, ii, mom, llc = monthName.toLocaleLowerCase(); |
22307 | if (!this._monthsParse) { | 22336 | if (!this._monthsParse) { |
22308 | // this is not used | 22337 | // this is not used |
22309 | this._monthsParse = []; | 22338 | this._monthsParse = []; |
22310 | this._longMonthsParse = []; | 22339 | this._longMonthsParse = []; |
22311 | this._shortMonthsParse = []; | 22340 | this._shortMonthsParse = []; |
22312 | for (i = 0; i < 12; ++i) { | 22341 | for (i = 0; i < 12; ++i) { |
22313 | mom = create_utc__createUTC([2000, i]); | 22342 | mom = createUTC([2000, i]); |
22314 | this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); | 22343 | this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); |
22315 | this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); | 22344 | this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); |
22316 | } | ||
22317 | } | 22345 | } |
22346 | } | ||
22318 | 22347 | ||
22319 | if (strict) { | 22348 | if (strict) { |
22320 | if (format === 'MMM') { | 22349 | if (format === 'MMM') { |
22321 | ii = indexOf.call(this._shortMonthsParse, llc); | 22350 | ii = indexOf$1.call(this._shortMonthsParse, llc); |
22322 | return ii !== -1 ? ii : null; | 22351 | return ii !== -1 ? ii : null; |
22323 | } else { | 22352 | } else { |
22324 | ii = indexOf.call(this._longMonthsParse, llc); | 22353 | ii = indexOf$1.call(this._longMonthsParse, llc); |
22325 | return ii !== -1 ? ii : null; | 22354 | return ii !== -1 ? ii : null; |
22355 | } | ||
22356 | } else { | ||
22357 | if (format === 'MMM') { | ||
22358 | ii = indexOf$1.call(this._shortMonthsParse, llc); | ||
22359 | if (ii !== -1) { | ||
22360 | return ii; | ||
22326 | } | 22361 | } |
22362 | ii = indexOf$1.call(this._longMonthsParse, llc); | ||
22363 | return ii !== -1 ? ii : null; | ||
22327 | } else { | 22364 | } else { |
22328 | if (format === 'MMM') { | 22365 | ii = indexOf$1.call(this._longMonthsParse, llc); |
22329 | ii = indexOf.call(this._shortMonthsParse, llc); | 22366 | if (ii !== -1) { |
22330 | if (ii !== -1) { | 22367 | return ii; |
22331 | return ii; | ||
22332 | } | ||
22333 | ii = indexOf.call(this._longMonthsParse, llc); | ||
22334 | return ii !== -1 ? ii : null; | ||
22335 | } else { | ||
22336 | ii = indexOf.call(this._longMonthsParse, llc); | ||
22337 | if (ii !== -1) { | ||
22338 | return ii; | ||
22339 | } | ||
22340 | ii = indexOf.call(this._shortMonthsParse, llc); | ||
22341 | return ii !== -1 ? ii : null; | ||
22342 | } | 22368 | } |
22369 | ii = indexOf$1.call(this._shortMonthsParse, llc); | ||
22370 | return ii !== -1 ? ii : null; | ||
22343 | } | 22371 | } |
22344 | } | 22372 | } |
22373 | } | ||
22345 | 22374 | ||
22346 | function localeMonthsParse (monthName, format, strict) { | 22375 | function localeMonthsParse (monthName, format, strict) { |
22347 | var i, mom, regex; | 22376 | var i, mom, regex; |
22348 | 22377 | ||
22349 | if (this._monthsParseExact) { | 22378 | if (this._monthsParseExact) { |
22350 | return units_month__handleStrictParse.call(this, monthName, format, strict); | 22379 | return handleStrictParse.call(this, monthName, format, strict); |
22351 | } | 22380 | } |
22352 | 22381 | ||
22353 | if (!this._monthsParse) { | 22382 | if (!this._monthsParse) { |
22354 | this._monthsParse = []; | 22383 | this._monthsParse = []; |
22355 | this._longMonthsParse = []; | 22384 | this._longMonthsParse = []; |
22356 | this._shortMonthsParse = []; | 22385 | this._shortMonthsParse = []; |
22357 | } | 22386 | } |
22358 | 22387 | ||
22359 | // TODO: add sorting | 22388 | // TODO: add sorting |
22360 | // Sorting makes sure if one month (or abbr) is a prefix of another | 22389 | // Sorting makes sure if one month (or abbr) is a prefix of another |
22361 | // see sorting in computeMonthsParse | 22390 | // see sorting in computeMonthsParse |
22362 | for (i = 0; i < 12; i++) { | 22391 | for (i = 0; i < 12; i++) { |
22363 | // make the regex if we don't have it already | 22392 | // make the regex if we don't have it already |
22364 | mom = create_utc__createUTC([2000, i]); | 22393 | mom = createUTC([2000, i]); |
22365 | if (strict && !this._longMonthsParse[i]) { | 22394 | if (strict && !this._longMonthsParse[i]) { |
22366 | this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); | 22395 | this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); |
22367 | this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); | 22396 | this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); |
22368 | } | 22397 | } |
22369 | if (!strict && !this._monthsParse[i]) { | 22398 | if (!strict && !this._monthsParse[i]) { |
22370 | regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); | 22399 | regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); |
22371 | this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); | 22400 | this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); |
22372 | } | 22401 | } |
22373 | // test the regex | 22402 | // test the regex |
22374 | if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { | 22403 | if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { |
22375 | return i; | 22404 | return i; |
22376 | } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { | 22405 | } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { |
22377 | return i; | 22406 | return i; |
22378 | } else if (!strict && this._monthsParse[i].test(monthName)) { | 22407 | } else if (!strict && this._monthsParse[i].test(monthName)) { |
22379 | return i; | 22408 | return i; |
22380 | } | ||
22381 | } | 22409 | } |
22382 | } | 22410 | } |
22411 | } | ||
22383 | 22412 | ||
22384 | // MOMENTS | 22413 | // MOMENTS |
22385 | |||
22386 | function setMonth (mom, value) { | ||
22387 | var dayOfMonth; | ||
22388 | 22414 | ||
22389 | if (!mom.isValid()) { | 22415 | function setMonth (mom, value) { |
22390 | // No op | 22416 | var dayOfMonth; |
22391 | return mom; | ||
22392 | } | ||
22393 | 22417 | ||
22394 | if (typeof value === 'string') { | 22418 | if (!mom.isValid()) { |
22395 | if (/^\d+$/.test(value)) { | 22419 | // No op |
22396 | value = toInt(value); | ||
22397 | } else { | ||
22398 | value = mom.localeData().monthsParse(value); | ||
22399 | // TODO: Another silent failure? | ||
22400 | if (typeof value !== 'number') { | ||
22401 | return mom; | ||
22402 | } | ||
22403 | } | ||
22404 | } | ||
22405 | |||
22406 | dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); | ||
22407 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); | ||
22408 | return mom; | 22420 | return mom; |
22409 | } | 22421 | } |
22410 | 22422 | ||
22411 | function getSetMonth (value) { | 22423 | if (typeof value === 'string') { |
22412 | if (value != null) { | 22424 | if (/^\d+$/.test(value)) { |
22413 | setMonth(this, value); | 22425 | value = toInt(value); |
22414 | utils_hooks__hooks.updateOffset(this, true); | ||
22415 | return this; | ||
22416 | } else { | 22426 | } else { |
22417 | return get_set__get(this, 'Month'); | 22427 | value = mom.localeData().monthsParse(value); |
22428 | // TODO: Another silent failure? | ||
22429 | if (!isNumber(value)) { | ||
22430 | return mom; | ||
22431 | } | ||
22418 | } | 22432 | } |
22419 | } | 22433 | } |
22420 | 22434 | ||
22421 | function getDaysInMonth () { | 22435 | dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); |
22422 | return daysInMonth(this.year(), this.month()); | 22436 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); |
22423 | } | 22437 | return mom; |
22438 | } | ||
22424 | 22439 | ||
22425 | var defaultMonthsShortRegex = matchWord; | 22440 | function getSetMonth (value) { |
22426 | function monthsShortRegex (isStrict) { | 22441 | if (value != null) { |
22427 | if (this._monthsParseExact) { | 22442 | setMonth(this, value); |
22428 | if (!hasOwnProp(this, '_monthsRegex')) { | 22443 | hooks.updateOffset(this, true); |
22429 | computeMonthsParse.call(this); | 22444 | return this; |
22430 | } | 22445 | } else { |
22431 | if (isStrict) { | 22446 | return get(this, 'Month'); |
22432 | return this._monthsShortStrictRegex; | ||
22433 | } else { | ||
22434 | return this._monthsShortRegex; | ||
22435 | } | ||
22436 | } else { | ||
22437 | if (!hasOwnProp(this, '_monthsShortRegex')) { | ||
22438 | this._monthsShortRegex = defaultMonthsShortRegex; | ||
22439 | } | ||
22440 | return this._monthsShortStrictRegex && isStrict ? | ||
22441 | this._monthsShortStrictRegex : this._monthsShortRegex; | ||
22442 | } | ||
22443 | } | 22447 | } |
22448 | } | ||
22444 | 22449 | ||
22445 | var defaultMonthsRegex = matchWord; | 22450 | function getDaysInMonth () { |
22446 | function monthsRegex (isStrict) { | 22451 | return daysInMonth(this.year(), this.month()); |
22447 | if (this._monthsParseExact) { | 22452 | } |
22448 | if (!hasOwnProp(this, '_monthsRegex')) { | 22453 | |
22449 | computeMonthsParse.call(this); | 22454 | var defaultMonthsShortRegex = matchWord; |
22450 | } | 22455 | function monthsShortRegex (isStrict) { |
22451 | if (isStrict) { | 22456 | if (this._monthsParseExact) { |
22452 | return this._monthsStrictRegex; | 22457 | if (!hasOwnProp(this, '_monthsRegex')) { |
22453 | } else { | 22458 | computeMonthsParse.call(this); |
22454 | return this._monthsRegex; | 22459 | } |
22455 | } | 22460 | if (isStrict) { |
22461 | return this._monthsShortStrictRegex; | ||
22456 | } else { | 22462 | } else { |
22457 | if (!hasOwnProp(this, '_monthsRegex')) { | 22463 | return this._monthsShortRegex; |
22458 | this._monthsRegex = defaultMonthsRegex; | ||
22459 | } | ||
22460 | return this._monthsStrictRegex && isStrict ? | ||
22461 | this._monthsStrictRegex : this._monthsRegex; | ||
22462 | } | 22464 | } |
22463 | } | 22465 | } else { |
22464 | 22466 | if (!hasOwnProp(this, '_monthsShortRegex')) { | |
22465 | function computeMonthsParse () { | 22467 | this._monthsShortRegex = defaultMonthsShortRegex; |
22466 | function cmpLenRev(a, b) { | ||
22467 | return b.length - a.length; | ||
22468 | } | 22468 | } |
22469 | return this._monthsShortStrictRegex && isStrict ? | ||
22470 | this._monthsShortStrictRegex : this._monthsShortRegex; | ||
22471 | } | ||
22472 | } | ||
22469 | 22473 | ||
22470 | var shortPieces = [], longPieces = [], mixedPieces = [], | 22474 | var defaultMonthsRegex = matchWord; |
22471 | i, mom; | 22475 | function monthsRegex (isStrict) { |
22472 | for (i = 0; i < 12; i++) { | 22476 | if (this._monthsParseExact) { |
22473 | // make the regex if we don't have it already | 22477 | if (!hasOwnProp(this, '_monthsRegex')) { |
22474 | mom = create_utc__createUTC([2000, i]); | 22478 | computeMonthsParse.call(this); |
22475 | shortPieces.push(this.monthsShort(mom, '')); | ||
22476 | longPieces.push(this.months(mom, '')); | ||
22477 | mixedPieces.push(this.months(mom, '')); | ||
22478 | mixedPieces.push(this.monthsShort(mom, '')); | ||
22479 | } | 22479 | } |
22480 | // Sorting makes sure if one month (or abbr) is a prefix of another it | 22480 | if (isStrict) { |
22481 | // will match the longer piece. | 22481 | return this._monthsStrictRegex; |
22482 | shortPieces.sort(cmpLenRev); | 22482 | } else { |
22483 | longPieces.sort(cmpLenRev); | 22483 | return this._monthsRegex; |
22484 | mixedPieces.sort(cmpLenRev); | ||
22485 | for (i = 0; i < 12; i++) { | ||
22486 | shortPieces[i] = regexEscape(shortPieces[i]); | ||
22487 | longPieces[i] = regexEscape(longPieces[i]); | ||
22488 | } | 22484 | } |
22489 | for (i = 0; i < 24; i++) { | 22485 | } else { |
22490 | mixedPieces[i] = regexEscape(mixedPieces[i]); | 22486 | if (!hasOwnProp(this, '_monthsRegex')) { |
22487 | this._monthsRegex = defaultMonthsRegex; | ||
22491 | } | 22488 | } |
22489 | return this._monthsStrictRegex && isStrict ? | ||
22490 | this._monthsStrictRegex : this._monthsRegex; | ||
22491 | } | ||
22492 | } | ||
22492 | 22493 | ||
22493 | this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); | 22494 | function computeMonthsParse () { |
22494 | this._monthsShortRegex = this._monthsRegex; | 22495 | function cmpLenRev(a, b) { |
22495 | this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); | 22496 | return b.length - a.length; |
22496 | this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); | ||
22497 | } | 22497 | } |
22498 | 22498 | ||
22499 | // FORMATTING | 22499 | var shortPieces = [], longPieces = [], mixedPieces = [], |
22500 | i, mom; | ||
22501 | for (i = 0; i < 12; i++) { | ||
22502 | // make the regex if we don't have it already | ||
22503 | mom = createUTC([2000, i]); | ||
22504 | shortPieces.push(this.monthsShort(mom, '')); | ||
22505 | longPieces.push(this.months(mom, '')); | ||
22506 | mixedPieces.push(this.months(mom, '')); | ||
22507 | mixedPieces.push(this.monthsShort(mom, '')); | ||
22508 | } | ||
22509 | // Sorting makes sure if one month (or abbr) is a prefix of another it | ||
22510 | // will match the longer piece. | ||
22511 | shortPieces.sort(cmpLenRev); | ||
22512 | longPieces.sort(cmpLenRev); | ||
22513 | mixedPieces.sort(cmpLenRev); | ||
22514 | for (i = 0; i < 12; i++) { | ||
22515 | shortPieces[i] = regexEscape(shortPieces[i]); | ||
22516 | longPieces[i] = regexEscape(longPieces[i]); | ||
22517 | } | ||
22518 | for (i = 0; i < 24; i++) { | ||
22519 | mixedPieces[i] = regexEscape(mixedPieces[i]); | ||
22520 | } | ||
22500 | 22521 | ||
22501 | addFormatToken('Y', 0, 0, function () { | 22522 | this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); |
22502 | var y = this.year(); | 22523 | this._monthsShortRegex = this._monthsRegex; |
22503 | return y <= 9999 ? '' + y : '+' + y; | 22524 | this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); |
22504 | }); | 22525 | this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); |
22526 | } | ||
22505 | 22527 | ||
22506 | addFormatToken(0, ['YY', 2], 0, function () { | 22528 | // FORMATTING |
22507 | return this.year() % 100; | ||
22508 | }); | ||
22509 | 22529 | ||
22510 | addFormatToken(0, ['YYYY', 4], 0, 'year'); | 22530 | addFormatToken('Y', 0, 0, function () { |
22511 | addFormatToken(0, ['YYYYY', 5], 0, 'year'); | 22531 | var y = this.year(); |
22512 | addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); | 22532 | return y <= 9999 ? '' + y : '+' + y; |
22533 | }); | ||
22513 | 22534 | ||
22514 | // ALIASES | 22535 | addFormatToken(0, ['YY', 2], 0, function () { |
22536 | return this.year() % 100; | ||
22537 | }); | ||
22515 | 22538 | ||
22516 | addUnitAlias('year', 'y'); | 22539 | addFormatToken(0, ['YYYY', 4], 0, 'year'); |
22540 | addFormatToken(0, ['YYYYY', 5], 0, 'year'); | ||
22541 | addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); | ||
22517 | 22542 | ||
22518 | // PRIORITIES | 22543 | // ALIASES |
22519 | 22544 | ||
22520 | addUnitPriority('year', 1); | 22545 | addUnitAlias('year', 'y'); |
22521 | 22546 | ||
22522 | // PARSING | 22547 | // PRIORITIES |
22523 | 22548 | ||
22524 | addRegexToken('Y', matchSigned); | 22549 | addUnitPriority('year', 1); |
22525 | addRegexToken('YY', match1to2, match2); | ||
22526 | addRegexToken('YYYY', match1to4, match4); | ||
22527 | addRegexToken('YYYYY', match1to6, match6); | ||
22528 | addRegexToken('YYYYYY', match1to6, match6); | ||
22529 | 22550 | ||
22530 | addParseToken(['YYYYY', 'YYYYYY'], YEAR); | 22551 | // PARSING |
22531 | addParseToken('YYYY', function (input, array) { | ||
22532 | array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); | ||
22533 | }); | ||
22534 | addParseToken('YY', function (input, array) { | ||
22535 | array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); | ||
22536 | }); | ||
22537 | addParseToken('Y', function (input, array) { | ||
22538 | array[YEAR] = parseInt(input, 10); | ||
22539 | }); | ||
22540 | 22552 | ||
22541 | // HELPERS | 22553 | addRegexToken('Y', matchSigned); |
22554 | addRegexToken('YY', match1to2, match2); | ||
22555 | addRegexToken('YYYY', match1to4, match4); | ||
22556 | addRegexToken('YYYYY', match1to6, match6); | ||
22557 | addRegexToken('YYYYYY', match1to6, match6); | ||
22542 | 22558 | ||
22543 | function daysInYear(year) { | 22559 | addParseToken(['YYYYY', 'YYYYYY'], YEAR); |
22544 | return isLeapYear(year) ? 366 : 365; | 22560 | addParseToken('YYYY', function (input, array) { |
22545 | } | 22561 | array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); |
22562 | }); | ||
22563 | addParseToken('YY', function (input, array) { | ||
22564 | array[YEAR] = hooks.parseTwoDigitYear(input); | ||
22565 | }); | ||
22566 | addParseToken('Y', function (input, array) { | ||
22567 | array[YEAR] = parseInt(input, 10); | ||
22568 | }); | ||
22546 | 22569 | ||
22547 | function isLeapYear(year) { | 22570 | // HELPERS |
22548 | return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; | ||
22549 | } | ||
22550 | 22571 | ||
22551 | // HOOKS | 22572 | function daysInYear(year) { |
22573 | return isLeapYear(year) ? 366 : 365; | ||
22574 | } | ||
22552 | 22575 | ||
22553 | utils_hooks__hooks.parseTwoDigitYear = function (input) { | 22576 | function isLeapYear(year) { |
22554 | return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); | 22577 | return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; |
22555 | }; | 22578 | } |
22556 | 22579 | ||
22557 | // MOMENTS | 22580 | // HOOKS |
22558 | 22581 | ||
22559 | var getSetYear = makeGetSet('FullYear', true); | 22582 | hooks.parseTwoDigitYear = function (input) { |
22583 | return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); | ||
22584 | }; | ||
22560 | 22585 | ||
22561 | function getIsLeapYear () { | 22586 | // MOMENTS |
22562 | return isLeapYear(this.year()); | ||
22563 | } | ||
22564 | 22587 | ||
22565 | function createDate (y, m, d, h, M, s, ms) { | 22588 | var getSetYear = makeGetSet('FullYear', true); |
22566 | //can't just apply() to create a date: | ||
22567 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply | ||
22568 | var date = new Date(y, m, d, h, M, s, ms); | ||
22569 | 22589 | ||
22570 | //the date constructor remaps years 0-99 to 1900-1999 | 22590 | function getIsLeapYear () { |
22571 | if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { | 22591 | return isLeapYear(this.year()); |
22572 | date.setFullYear(y); | 22592 | } |
22573 | } | ||
22574 | return date; | ||
22575 | } | ||
22576 | 22593 | ||
22577 | function createUTCDate (y) { | 22594 | function createDate (y, m, d, h, M, s, ms) { |
22578 | var date = new Date(Date.UTC.apply(null, arguments)); | 22595 | //can't just apply() to create a date: |
22596 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply | ||
22597 | var date = new Date(y, m, d, h, M, s, ms); | ||
22579 | 22598 | ||
22580 | //the Date.UTC function remaps years 0-99 to 1900-1999 | 22599 | //the date constructor remaps years 0-99 to 1900-1999 |
22581 | if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { | 22600 | if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { |
22582 | date.setUTCFullYear(y); | 22601 | date.setFullYear(y); |
22583 | } | ||
22584 | return date; | ||
22585 | } | 22602 | } |
22603 | return date; | ||
22604 | } | ||
22586 | 22605 | ||
22587 | // start-of-first-week - start-of-year | 22606 | function createUTCDate (y) { |
22588 | function firstWeekOffset(year, dow, doy) { | 22607 | var date = new Date(Date.UTC.apply(null, arguments)); |
22589 | var // first-week day -- which january is always in the first week (4 for iso, 1 for other) | ||
22590 | fwd = 7 + dow - doy, | ||
22591 | // first-week day local weekday -- which local weekday is fwd | ||
22592 | fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; | ||
22593 | 22608 | ||
22594 | return -fwdlw + fwd - 1; | 22609 | //the Date.UTC function remaps years 0-99 to 1900-1999 |
22610 | if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { | ||
22611 | date.setUTCFullYear(y); | ||
22595 | } | 22612 | } |
22613 | return date; | ||
22614 | } | ||
22596 | 22615 | ||
22597 | //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday | 22616 | // start-of-first-week - start-of-year |
22598 | function dayOfYearFromWeeks(year, week, weekday, dow, doy) { | 22617 | function firstWeekOffset(year, dow, doy) { |
22599 | var localWeekday = (7 + weekday - dow) % 7, | 22618 | var // first-week day -- which january is always in the first week (4 for iso, 1 for other) |
22600 | weekOffset = firstWeekOffset(year, dow, doy), | 22619 | fwd = 7 + dow - doy, |
22601 | dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, | 22620 | // first-week day local weekday -- which local weekday is fwd |
22602 | resYear, resDayOfYear; | 22621 | fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; |
22603 | 22622 | ||
22604 | if (dayOfYear <= 0) { | 22623 | return -fwdlw + fwd - 1; |
22605 | resYear = year - 1; | 22624 | } |
22606 | resDayOfYear = daysInYear(resYear) + dayOfYear; | ||
22607 | } else if (dayOfYear > daysInYear(year)) { | ||
22608 | resYear = year + 1; | ||
22609 | resDayOfYear = dayOfYear - daysInYear(year); | ||
22610 | } else { | ||
22611 | resYear = year; | ||
22612 | resDayOfYear = dayOfYear; | ||
22613 | } | ||
22614 | 22625 | ||
22615 | return { | 22626 | //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday |
22616 | year: resYear, | 22627 | function dayOfYearFromWeeks(year, week, weekday, dow, doy) { |
22617 | dayOfYear: resDayOfYear | 22628 | var localWeekday = (7 + weekday - dow) % 7, |
22618 | }; | 22629 | weekOffset = firstWeekOffset(year, dow, doy), |
22619 | } | 22630 | dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, |
22631 | resYear, resDayOfYear; | ||
22620 | 22632 | ||
22621 | function weekOfYear(mom, dow, doy) { | 22633 | if (dayOfYear <= 0) { |
22622 | var weekOffset = firstWeekOffset(mom.year(), dow, doy), | 22634 | resYear = year - 1; |
22623 | week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, | 22635 | resDayOfYear = daysInYear(resYear) + dayOfYear; |
22624 | resWeek, resYear; | 22636 | } else if (dayOfYear > daysInYear(year)) { |
22637 | resYear = year + 1; | ||
22638 | resDayOfYear = dayOfYear - daysInYear(year); | ||
22639 | } else { | ||
22640 | resYear = year; | ||
22641 | resDayOfYear = dayOfYear; | ||
22642 | } | ||
22625 | 22643 | ||
22626 | if (week < 1) { | 22644 | return { |
22627 | resYear = mom.year() - 1; | 22645 | year: resYear, |
22628 | resWeek = week + weeksInYear(resYear, dow, doy); | 22646 | dayOfYear: resDayOfYear |
22629 | } else if (week > weeksInYear(mom.year(), dow, doy)) { | 22647 | }; |
22630 | resWeek = week - weeksInYear(mom.year(), dow, doy); | 22648 | } |
22631 | resYear = mom.year() + 1; | ||
22632 | } else { | ||
22633 | resYear = mom.year(); | ||
22634 | resWeek = week; | ||
22635 | } | ||
22636 | 22649 | ||
22637 | return { | 22650 | function weekOfYear(mom, dow, doy) { |
22638 | week: resWeek, | 22651 | var weekOffset = firstWeekOffset(mom.year(), dow, doy), |
22639 | year: resYear | 22652 | week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, |
22640 | }; | 22653 | resWeek, resYear; |
22641 | } | ||
22642 | 22654 | ||
22643 | function weeksInYear(year, dow, doy) { | 22655 | if (week < 1) { |
22644 | var weekOffset = firstWeekOffset(year, dow, doy), | 22656 | resYear = mom.year() - 1; |
22645 | weekOffsetNext = firstWeekOffset(year + 1, dow, doy); | 22657 | resWeek = week + weeksInYear(resYear, dow, doy); |
22646 | return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; | 22658 | } else if (week > weeksInYear(mom.year(), dow, doy)) { |
22659 | resWeek = week - weeksInYear(mom.year(), dow, doy); | ||
22660 | resYear = mom.year() + 1; | ||
22661 | } else { | ||
22662 | resYear = mom.year(); | ||
22663 | resWeek = week; | ||
22647 | } | 22664 | } |
22648 | 22665 | ||
22649 | // FORMATTING | 22666 | return { |
22667 | week: resWeek, | ||
22668 | year: resYear | ||
22669 | }; | ||
22670 | } | ||
22650 | 22671 | ||
22651 | addFormatToken('w', ['ww', 2], 'wo', 'week'); | 22672 | function weeksInYear(year, dow, doy) { |
22652 | addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); | 22673 | var weekOffset = firstWeekOffset(year, dow, doy), |
22674 | weekOffsetNext = firstWeekOffset(year + 1, dow, doy); | ||
22675 | return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; | ||
22676 | } | ||
22653 | 22677 | ||
22654 | // ALIASES | 22678 | // FORMATTING |
22655 | 22679 | ||
22656 | addUnitAlias('week', 'w'); | 22680 | addFormatToken('w', ['ww', 2], 'wo', 'week'); |
22657 | addUnitAlias('isoWeek', 'W'); | 22681 | addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); |
22658 | 22682 | ||
22659 | // PRIORITIES | 22683 | // ALIASES |
22660 | 22684 | ||
22661 | addUnitPriority('week', 5); | 22685 | addUnitAlias('week', 'w'); |
22662 | addUnitPriority('isoWeek', 5); | 22686 | addUnitAlias('isoWeek', 'W'); |
22663 | 22687 | ||
22664 | // PARSING | 22688 | // PRIORITIES |
22665 | 22689 | ||
22666 | addRegexToken('w', match1to2); | 22690 | addUnitPriority('week', 5); |
22667 | addRegexToken('ww', match1to2, match2); | 22691 | addUnitPriority('isoWeek', 5); |
22668 | addRegexToken('W', match1to2); | ||
22669 | addRegexToken('WW', match1to2, match2); | ||
22670 | 22692 | ||
22671 | addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { | 22693 | // PARSING |
22672 | week[token.substr(0, 1)] = toInt(input); | ||
22673 | }); | ||
22674 | 22694 | ||
22675 | // HELPERS | 22695 | addRegexToken('w', match1to2); |
22696 | addRegexToken('ww', match1to2, match2); | ||
22697 | addRegexToken('W', match1to2); | ||
22698 | addRegexToken('WW', match1to2, match2); | ||
22676 | 22699 | ||
22677 | // LOCALES | 22700 | addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { |
22701 | week[token.substr(0, 1)] = toInt(input); | ||
22702 | }); | ||
22678 | 22703 | ||
22679 | function localeWeek (mom) { | 22704 | // HELPERS |
22680 | return weekOfYear(mom, this._week.dow, this._week.doy).week; | ||
22681 | } | ||
22682 | 22705 | ||
22683 | var defaultLocaleWeek = { | 22706 | // LOCALES |
22684 | dow : 0, // Sunday is the first day of the week. | ||
22685 | doy : 6 // The week that contains Jan 1st is the first week of the year. | ||
22686 | }; | ||
22687 | 22707 | ||
22688 | function localeFirstDayOfWeek () { | 22708 | function localeWeek (mom) { |
22689 | return this._week.dow; | 22709 | return weekOfYear(mom, this._week.dow, this._week.doy).week; |
22690 | } | 22710 | } |
22691 | 22711 | ||
22692 | function localeFirstDayOfYear () { | 22712 | var defaultLocaleWeek = { |
22693 | return this._week.doy; | 22713 | dow : 0, // Sunday is the first day of the week. |
22694 | } | 22714 | doy : 6 // The week that contains Jan 1st is the first week of the year. |
22715 | }; | ||
22695 | 22716 | ||
22696 | // MOMENTS | 22717 | function localeFirstDayOfWeek () { |
22718 | return this._week.dow; | ||
22719 | } | ||
22697 | 22720 | ||
22698 | function getSetWeek (input) { | 22721 | function localeFirstDayOfYear () { |
22699 | var week = this.localeData().week(this); | 22722 | return this._week.doy; |
22700 | return input == null ? week : this.add((input - week) * 7, 'd'); | 22723 | } |
22701 | } | ||
22702 | 22724 | ||
22703 | function getSetISOWeek (input) { | 22725 | // MOMENTS |
22704 | var week = weekOfYear(this, 1, 4).week; | ||
22705 | return input == null ? week : this.add((input - week) * 7, 'd'); | ||
22706 | } | ||
22707 | 22726 | ||
22708 | // FORMATTING | 22727 | function getSetWeek (input) { |
22728 | var week = this.localeData().week(this); | ||
22729 | return input == null ? week : this.add((input - week) * 7, 'd'); | ||
22730 | } | ||
22709 | 22731 | ||
22710 | addFormatToken('d', 0, 'do', 'day'); | 22732 | function getSetISOWeek (input) { |
22733 | var week = weekOfYear(this, 1, 4).week; | ||
22734 | return input == null ? week : this.add((input - week) * 7, 'd'); | ||
22735 | } | ||
22711 | 22736 | ||
22712 | addFormatToken('dd', 0, 0, function (format) { | 22737 | // FORMATTING |
22713 | return this.localeData().weekdaysMin(this, format); | ||
22714 | }); | ||
22715 | 22738 | ||
22716 | addFormatToken('ddd', 0, 0, function (format) { | 22739 | addFormatToken('d', 0, 'do', 'day'); |
22717 | return this.localeData().weekdaysShort(this, format); | ||
22718 | }); | ||
22719 | 22740 | ||
22720 | addFormatToken('dddd', 0, 0, function (format) { | 22741 | addFormatToken('dd', 0, 0, function (format) { |
22721 | return this.localeData().weekdays(this, format); | 22742 | return this.localeData().weekdaysMin(this, format); |
22722 | }); | 22743 | }); |
22723 | 22744 | ||
22724 | addFormatToken('e', 0, 0, 'weekday'); | 22745 | addFormatToken('ddd', 0, 0, function (format) { |
22725 | addFormatToken('E', 0, 0, 'isoWeekday'); | 22746 | return this.localeData().weekdaysShort(this, format); |
22747 | }); | ||
22726 | 22748 | ||
22727 | // ALIASES | 22749 | addFormatToken('dddd', 0, 0, function (format) { |
22750 | return this.localeData().weekdays(this, format); | ||
22751 | }); | ||
22728 | 22752 | ||
22729 | addUnitAlias('day', 'd'); | 22753 | addFormatToken('e', 0, 0, 'weekday'); |
22730 | addUnitAlias('weekday', 'e'); | 22754 | addFormatToken('E', 0, 0, 'isoWeekday'); |
22731 | addUnitAlias('isoWeekday', 'E'); | ||
22732 | 22755 | ||
22733 | // PRIORITY | 22756 | // ALIASES |
22734 | addUnitPriority('day', 11); | ||
22735 | addUnitPriority('weekday', 11); | ||
22736 | addUnitPriority('isoWeekday', 11); | ||
22737 | 22757 | ||
22738 | // PARSING | 22758 | addUnitAlias('day', 'd'); |
22759 | addUnitAlias('weekday', 'e'); | ||
22760 | addUnitAlias('isoWeekday', 'E'); | ||
22739 | 22761 | ||
22740 | addRegexToken('d', match1to2); | 22762 | // PRIORITY |
22741 | addRegexToken('e', match1to2); | 22763 | addUnitPriority('day', 11); |
22742 | addRegexToken('E', match1to2); | 22764 | addUnitPriority('weekday', 11); |
22743 | addRegexToken('dd', function (isStrict, locale) { | 22765 | addUnitPriority('isoWeekday', 11); |
22744 | return locale.weekdaysMinRegex(isStrict); | ||
22745 | }); | ||
22746 | addRegexToken('ddd', function (isStrict, locale) { | ||
22747 | return locale.weekdaysShortRegex(isStrict); | ||
22748 | }); | ||
22749 | addRegexToken('dddd', function (isStrict, locale) { | ||
22750 | return locale.weekdaysRegex(isStrict); | ||
22751 | }); | ||
22752 | 22766 | ||
22753 | addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { | 22767 | // PARSING |
22754 | var weekday = config._locale.weekdaysParse(input, token, config._strict); | ||
22755 | // if we didn't get a weekday name, mark the date as invalid | ||
22756 | if (weekday != null) { | ||
22757 | week.d = weekday; | ||
22758 | } else { | ||
22759 | getParsingFlags(config).invalidWeekday = input; | ||
22760 | } | ||
22761 | }); | ||
22762 | 22768 | ||
22763 | addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { | 22769 | addRegexToken('d', match1to2); |
22764 | week[token] = toInt(input); | 22770 | addRegexToken('e', match1to2); |
22765 | }); | 22771 | addRegexToken('E', match1to2); |
22772 | addRegexToken('dd', function (isStrict, locale) { | ||
22773 | return locale.weekdaysMinRegex(isStrict); | ||
22774 | }); | ||
22775 | addRegexToken('ddd', function (isStrict, locale) { | ||
22776 | return locale.weekdaysShortRegex(isStrict); | ||
22777 | }); | ||
22778 | addRegexToken('dddd', function (isStrict, locale) { | ||
22779 | return locale.weekdaysRegex(isStrict); | ||
22780 | }); | ||
22766 | 22781 | ||
22767 | // HELPERS | 22782 | addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { |
22783 | var weekday = config._locale.weekdaysParse(input, token, config._strict); | ||
22784 | // if we didn't get a weekday name, mark the date as invalid | ||
22785 | if (weekday != null) { | ||
22786 | week.d = weekday; | ||
22787 | } else { | ||
22788 | getParsingFlags(config).invalidWeekday = input; | ||
22789 | } | ||
22790 | }); | ||
22768 | 22791 | ||
22769 | function parseWeekday(input, locale) { | 22792 | addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { |
22770 | if (typeof input !== 'string') { | 22793 | week[token] = toInt(input); |
22771 | return input; | 22794 | }); |
22772 | } | ||
22773 | 22795 | ||
22774 | if (!isNaN(input)) { | 22796 | // HELPERS |
22775 | return parseInt(input, 10); | ||
22776 | } | ||
22777 | 22797 | ||
22778 | input = locale.weekdaysParse(input); | 22798 | function parseWeekday(input, locale) { |
22779 | if (typeof input === 'number') { | 22799 | if (typeof input !== 'string') { |
22780 | return input; | 22800 | return input; |
22781 | } | 22801 | } |
22782 | 22802 | ||
22783 | return null; | 22803 | if (!isNaN(input)) { |
22804 | return parseInt(input, 10); | ||
22784 | } | 22805 | } |
22785 | 22806 | ||
22786 | function parseIsoWeekday(input, locale) { | 22807 | input = locale.weekdaysParse(input); |
22787 | if (typeof input === 'string') { | 22808 | if (typeof input === 'number') { |
22788 | return locale.weekdaysParse(input) % 7 || 7; | 22809 | return input; |
22789 | } | ||
22790 | return isNaN(input) ? null : input; | ||
22791 | } | 22810 | } |
22792 | 22811 | ||
22793 | // LOCALES | 22812 | return null; |
22813 | } | ||
22794 | 22814 | ||
22795 | var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); | 22815 | function parseIsoWeekday(input, locale) { |
22796 | function localeWeekdays (m, format) { | 22816 | if (typeof input === 'string') { |
22797 | return isArray(this._weekdays) ? this._weekdays[m.day()] : | 22817 | return locale.weekdaysParse(input) % 7 || 7; |
22798 | this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; | ||
22799 | } | 22818 | } |
22819 | return isNaN(input) ? null : input; | ||
22820 | } | ||
22800 | 22821 | ||
22801 | var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); | 22822 | // LOCALES |
22802 | function localeWeekdaysShort (m) { | ||
22803 | return this._weekdaysShort[m.day()]; | ||
22804 | } | ||
22805 | 22823 | ||
22806 | var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); | 22824 | var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); |
22807 | function localeWeekdaysMin (m) { | 22825 | function localeWeekdays (m, format) { |
22808 | return this._weekdaysMin[m.day()]; | 22826 | if (!m) { |
22827 | return this._weekdays; | ||
22809 | } | 22828 | } |
22829 | return isArray(this._weekdays) ? this._weekdays[m.day()] : | ||
22830 | this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; | ||
22831 | } | ||
22832 | |||
22833 | var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); | ||
22834 | function localeWeekdaysShort (m) { | ||
22835 | return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; | ||
22836 | } | ||
22810 | 22837 | ||
22811 | function day_of_week__handleStrictParse(weekdayName, format, strict) { | 22838 | var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); |
22812 | var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); | 22839 | function localeWeekdaysMin (m) { |
22813 | if (!this._weekdaysParse) { | 22840 | return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; |
22814 | this._weekdaysParse = []; | 22841 | } |
22815 | this._shortWeekdaysParse = []; | ||
22816 | this._minWeekdaysParse = []; | ||
22817 | 22842 | ||
22818 | for (i = 0; i < 7; ++i) { | 22843 | function handleStrictParse$1(weekdayName, format, strict) { |
22819 | mom = create_utc__createUTC([2000, 1]).day(i); | 22844 | var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); |
22820 | this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); | 22845 | if (!this._weekdaysParse) { |
22821 | this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); | 22846 | this._weekdaysParse = []; |
22822 | this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); | 22847 | this._shortWeekdaysParse = []; |
22823 | } | 22848 | this._minWeekdaysParse = []; |
22849 | |||
22850 | for (i = 0; i < 7; ++i) { | ||
22851 | mom = createUTC([2000, 1]).day(i); | ||
22852 | this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); | ||
22853 | this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); | ||
22854 | this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); | ||
22824 | } | 22855 | } |
22856 | } | ||
22825 | 22857 | ||
22826 | if (strict) { | 22858 | if (strict) { |
22827 | if (format === 'dddd') { | 22859 | if (format === 'dddd') { |
22828 | ii = indexOf.call(this._weekdaysParse, llc); | 22860 | ii = indexOf$1.call(this._weekdaysParse, llc); |
22829 | return ii !== -1 ? ii : null; | 22861 | return ii !== -1 ? ii : null; |
22830 | } else if (format === 'ddd') { | 22862 | } else if (format === 'ddd') { |
22831 | ii = indexOf.call(this._shortWeekdaysParse, llc); | 22863 | ii = indexOf$1.call(this._shortWeekdaysParse, llc); |
22832 | return ii !== -1 ? ii : null; | 22864 | return ii !== -1 ? ii : null; |
22833 | } else { | 22865 | } else { |
22834 | ii = indexOf.call(this._minWeekdaysParse, llc); | 22866 | ii = indexOf$1.call(this._minWeekdaysParse, llc); |
22835 | return ii !== -1 ? ii : null; | 22867 | return ii !== -1 ? ii : null; |
22868 | } | ||
22869 | } else { | ||
22870 | if (format === 'dddd') { | ||
22871 | ii = indexOf$1.call(this._weekdaysParse, llc); | ||
22872 | if (ii !== -1) { | ||
22873 | return ii; | ||
22836 | } | 22874 | } |
22875 | ii = indexOf$1.call(this._shortWeekdaysParse, llc); | ||
22876 | if (ii !== -1) { | ||
22877 | return ii; | ||
22878 | } | ||
22879 | ii = indexOf$1.call(this._minWeekdaysParse, llc); | ||
22880 | return ii !== -1 ? ii : null; | ||
22881 | } else if (format === 'ddd') { | ||
22882 | ii = indexOf$1.call(this._shortWeekdaysParse, llc); | ||
22883 | if (ii !== -1) { | ||
22884 | return ii; | ||
22885 | } | ||
22886 | ii = indexOf$1.call(this._weekdaysParse, llc); | ||
22887 | if (ii !== -1) { | ||
22888 | return ii; | ||
22889 | } | ||
22890 | ii = indexOf$1.call(this._minWeekdaysParse, llc); | ||
22891 | return ii !== -1 ? ii : null; | ||
22837 | } else { | 22892 | } else { |
22838 | if (format === 'dddd') { | 22893 | ii = indexOf$1.call(this._minWeekdaysParse, llc); |
22839 | ii = indexOf.call(this._weekdaysParse, llc); | 22894 | if (ii !== -1) { |
22840 | if (ii !== -1) { | 22895 | return ii; |
22841 | return ii; | ||
22842 | } | ||
22843 | ii = indexOf.call(this._shortWeekdaysParse, llc); | ||
22844 | if (ii !== -1) { | ||
22845 | return ii; | ||
22846 | } | ||
22847 | ii = indexOf.call(this._minWeekdaysParse, llc); | ||
22848 | return ii !== -1 ? ii : null; | ||
22849 | } else if (format === 'ddd') { | ||
22850 | ii = indexOf.call(this._shortWeekdaysParse, llc); | ||
22851 | if (ii !== -1) { | ||
22852 | return ii; | ||
22853 | } | ||
22854 | ii = indexOf.call(this._weekdaysParse, llc); | ||
22855 | if (ii !== -1) { | ||
22856 | return ii; | ||
22857 | } | ||
22858 | ii = indexOf.call(this._minWeekdaysParse, llc); | ||
22859 | return ii !== -1 ? ii : null; | ||
22860 | } else { | ||
22861 | ii = indexOf.call(this._minWeekdaysParse, llc); | ||
22862 | if (ii !== -1) { | ||
22863 | return ii; | ||
22864 | } | ||
22865 | ii = indexOf.call(this._weekdaysParse, llc); | ||
22866 | if (ii !== -1) { | ||
22867 | return ii; | ||
22868 | } | ||
22869 | ii = indexOf.call(this._shortWeekdaysParse, llc); | ||
22870 | return ii !== -1 ? ii : null; | ||
22871 | } | 22896 | } |
22897 | ii = indexOf$1.call(this._weekdaysParse, llc); | ||
22898 | if (ii !== -1) { | ||
22899 | return ii; | ||
22900 | } | ||
22901 | ii = indexOf$1.call(this._shortWeekdaysParse, llc); | ||
22902 | return ii !== -1 ? ii : null; | ||
22872 | } | 22903 | } |
22873 | } | 22904 | } |
22905 | } | ||
22874 | 22906 | ||
22875 | function localeWeekdaysParse (weekdayName, format, strict) { | 22907 | function localeWeekdaysParse (weekdayName, format, strict) { |
22876 | var i, mom, regex; | 22908 | var i, mom, regex; |
22877 | 22909 | ||
22878 | if (this._weekdaysParseExact) { | 22910 | if (this._weekdaysParseExact) { |
22879 | return day_of_week__handleStrictParse.call(this, weekdayName, format, strict); | 22911 | return handleStrictParse$1.call(this, weekdayName, format, strict); |
22880 | } | 22912 | } |
22881 | 22913 | ||
22882 | if (!this._weekdaysParse) { | 22914 | if (!this._weekdaysParse) { |
22883 | this._weekdaysParse = []; | 22915 | this._weekdaysParse = []; |
22884 | this._minWeekdaysParse = []; | 22916 | this._minWeekdaysParse = []; |
22885 | this._shortWeekdaysParse = []; | 22917 | this._shortWeekdaysParse = []; |
22886 | this._fullWeekdaysParse = []; | 22918 | this._fullWeekdaysParse = []; |
22887 | } | 22919 | } |
22888 | 22920 | ||
22889 | for (i = 0; i < 7; i++) { | 22921 | for (i = 0; i < 7; i++) { |
22890 | // make the regex if we don't have it already | 22922 | // make the regex if we don't have it already |
22891 | 22923 | ||
22892 | mom = create_utc__createUTC([2000, 1]).day(i); | 22924 | mom = createUTC([2000, 1]).day(i); |
22893 | if (strict && !this._fullWeekdaysParse[i]) { | 22925 | if (strict && !this._fullWeekdaysParse[i]) { |
22894 | this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); | 22926 | this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); |
22895 | this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); | 22927 | this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); |
22896 | this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); | 22928 | this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); |
22897 | } | 22929 | } |
22898 | if (!this._weekdaysParse[i]) { | 22930 | if (!this._weekdaysParse[i]) { |
22899 | regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); | 22931 | regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); |
22900 | this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); | 22932 | this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); |
22901 | } | 22933 | } |
22902 | // test the regex | 22934 | // test the regex |
22903 | if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { | 22935 | if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { |
22904 | return i; | 22936 | return i; |
22905 | } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { | 22937 | } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { |
22906 | return i; | 22938 | return i; |
22907 | } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { | 22939 | } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { |
22908 | return i; | 22940 | return i; |
22909 | } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { | 22941 | } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { |
22910 | return i; | 22942 | return i; |
22911 | } | ||
22912 | } | 22943 | } |
22913 | } | 22944 | } |
22945 | } | ||
22914 | 22946 | ||
22915 | // MOMENTS | 22947 | // MOMENTS |
22916 | 22948 | ||
22917 | function getSetDayOfWeek (input) { | 22949 | function getSetDayOfWeek (input) { |
22918 | if (!this.isValid()) { | 22950 | if (!this.isValid()) { |
22919 | return input != null ? this : NaN; | 22951 | return input != null ? this : NaN; |
22920 | } | ||
22921 | var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); | ||
22922 | if (input != null) { | ||
22923 | input = parseWeekday(input, this.localeData()); | ||
22924 | return this.add(input - day, 'd'); | ||
22925 | } else { | ||
22926 | return day; | ||
22927 | } | ||
22928 | } | 22952 | } |
22953 | var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); | ||
22954 | if (input != null) { | ||
22955 | input = parseWeekday(input, this.localeData()); | ||
22956 | return this.add(input - day, 'd'); | ||
22957 | } else { | ||
22958 | return day; | ||
22959 | } | ||
22960 | } | ||
22929 | 22961 | ||
22930 | function getSetLocaleDayOfWeek (input) { | 22962 | function getSetLocaleDayOfWeek (input) { |
22931 | if (!this.isValid()) { | 22963 | if (!this.isValid()) { |
22932 | return input != null ? this : NaN; | 22964 | return input != null ? this : NaN; |
22933 | } | ||
22934 | var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; | ||
22935 | return input == null ? weekday : this.add(input - weekday, 'd'); | ||
22936 | } | 22965 | } |
22966 | var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; | ||
22967 | return input == null ? weekday : this.add(input - weekday, 'd'); | ||
22968 | } | ||
22937 | 22969 | ||
22938 | function getSetISODayOfWeek (input) { | 22970 | function getSetISODayOfWeek (input) { |
22939 | if (!this.isValid()) { | 22971 | if (!this.isValid()) { |
22940 | return input != null ? this : NaN; | 22972 | return input != null ? this : NaN; |
22941 | } | 22973 | } |
22942 | 22974 | ||
22943 | // behaves the same as moment#day except | 22975 | // behaves the same as moment#day except |
22944 | // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) | 22976 | // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) |
22945 | // as a setter, sunday should belong to the previous week. | 22977 | // as a setter, sunday should belong to the previous week. |
22946 | 22978 | ||
22947 | if (input != null) { | 22979 | if (input != null) { |
22948 | var weekday = parseIsoWeekday(input, this.localeData()); | 22980 | var weekday = parseIsoWeekday(input, this.localeData()); |
22949 | return this.day(this.day() % 7 ? weekday : weekday - 7); | 22981 | return this.day(this.day() % 7 ? weekday : weekday - 7); |
22950 | } else { | 22982 | } else { |
22951 | return this.day() || 7; | 22983 | return this.day() || 7; |
22952 | } | ||
22953 | } | 22984 | } |
22985 | } | ||
22954 | 22986 | ||
22955 | var defaultWeekdaysRegex = matchWord; | 22987 | var defaultWeekdaysRegex = matchWord; |
22956 | function weekdaysRegex (isStrict) { | 22988 | function weekdaysRegex (isStrict) { |
22957 | if (this._weekdaysParseExact) { | 22989 | if (this._weekdaysParseExact) { |
22958 | if (!hasOwnProp(this, '_weekdaysRegex')) { | 22990 | if (!hasOwnProp(this, '_weekdaysRegex')) { |
22959 | computeWeekdaysParse.call(this); | 22991 | computeWeekdaysParse.call(this); |
22960 | } | 22992 | } |
22961 | if (isStrict) { | 22993 | if (isStrict) { |
22962 | return this._weekdaysStrictRegex; | 22994 | return this._weekdaysStrictRegex; |
22963 | } else { | ||
22964 | return this._weekdaysRegex; | ||
22965 | } | ||
22966 | } else { | 22995 | } else { |
22967 | if (!hasOwnProp(this, '_weekdaysRegex')) { | 22996 | return this._weekdaysRegex; |
22968 | this._weekdaysRegex = defaultWeekdaysRegex; | ||
22969 | } | ||
22970 | return this._weekdaysStrictRegex && isStrict ? | ||
22971 | this._weekdaysStrictRegex : this._weekdaysRegex; | ||
22972 | } | 22997 | } |
22998 | } else { | ||
22999 | if (!hasOwnProp(this, '_weekdaysRegex')) { | ||
23000 | this._weekdaysRegex = defaultWeekdaysRegex; | ||
23001 | } | ||
23002 | return this._weekdaysStrictRegex && isStrict ? | ||
23003 | this._weekdaysStrictRegex : this._weekdaysRegex; | ||
22973 | } | 23004 | } |
23005 | } | ||
22974 | 23006 | ||
22975 | var defaultWeekdaysShortRegex = matchWord; | 23007 | var defaultWeekdaysShortRegex = matchWord; |
22976 | function weekdaysShortRegex (isStrict) { | 23008 | function weekdaysShortRegex (isStrict) { |
22977 | if (this._weekdaysParseExact) { | 23009 | if (this._weekdaysParseExact) { |
22978 | if (!hasOwnProp(this, '_weekdaysRegex')) { | 23010 | if (!hasOwnProp(this, '_weekdaysRegex')) { |
22979 | computeWeekdaysParse.call(this); | 23011 | computeWeekdaysParse.call(this); |
22980 | } | 23012 | } |
22981 | if (isStrict) { | 23013 | if (isStrict) { |
22982 | return this._weekdaysShortStrictRegex; | 23014 | return this._weekdaysShortStrictRegex; |
22983 | } else { | ||
22984 | return this._weekdaysShortRegex; | ||
22985 | } | ||
22986 | } else { | 23015 | } else { |
22987 | if (!hasOwnProp(this, '_weekdaysShortRegex')) { | 23016 | return this._weekdaysShortRegex; |
22988 | this._weekdaysShortRegex = defaultWeekdaysShortRegex; | 23017 | } |
22989 | } | 23018 | } else { |
22990 | return this._weekdaysShortStrictRegex && isStrict ? | 23019 | if (!hasOwnProp(this, '_weekdaysShortRegex')) { |
22991 | this._weekdaysShortStrictRegex : this._weekdaysShortRegex; | 23020 | this._weekdaysShortRegex = defaultWeekdaysShortRegex; |
22992 | } | 23021 | } |
23022 | return this._weekdaysShortStrictRegex && isStrict ? | ||
23023 | this._weekdaysShortStrictRegex : this._weekdaysShortRegex; | ||
22993 | } | 23024 | } |
23025 | } | ||
22994 | 23026 | ||
22995 | var defaultWeekdaysMinRegex = matchWord; | 23027 | var defaultWeekdaysMinRegex = matchWord; |
22996 | function weekdaysMinRegex (isStrict) { | 23028 | function weekdaysMinRegex (isStrict) { |
22997 | if (this._weekdaysParseExact) { | 23029 | if (this._weekdaysParseExact) { |
22998 | if (!hasOwnProp(this, '_weekdaysRegex')) { | 23030 | if (!hasOwnProp(this, '_weekdaysRegex')) { |
22999 | computeWeekdaysParse.call(this); | 23031 | computeWeekdaysParse.call(this); |
23000 | } | 23032 | } |
23001 | if (isStrict) { | 23033 | if (isStrict) { |
23002 | return this._weekdaysMinStrictRegex; | 23034 | return this._weekdaysMinStrictRegex; |
23003 | } else { | ||
23004 | return this._weekdaysMinRegex; | ||
23005 | } | ||
23006 | } else { | 23035 | } else { |
23007 | if (!hasOwnProp(this, '_weekdaysMinRegex')) { | 23036 | return this._weekdaysMinRegex; |
23008 | this._weekdaysMinRegex = defaultWeekdaysMinRegex; | ||
23009 | } | ||
23010 | return this._weekdaysMinStrictRegex && isStrict ? | ||
23011 | this._weekdaysMinStrictRegex : this._weekdaysMinRegex; | ||
23012 | } | 23037 | } |
23038 | } else { | ||
23039 | if (!hasOwnProp(this, '_weekdaysMinRegex')) { | ||
23040 | this._weekdaysMinRegex = defaultWeekdaysMinRegex; | ||
23041 | } | ||
23042 | return this._weekdaysMinStrictRegex && isStrict ? | ||
23043 | this._weekdaysMinStrictRegex : this._weekdaysMinRegex; | ||
23013 | } | 23044 | } |
23045 | } | ||
23014 | 23046 | ||
23015 | 23047 | ||
23016 | function computeWeekdaysParse () { | 23048 | function computeWeekdaysParse () { |
23017 | function cmpLenRev(a, b) { | 23049 | function cmpLenRev(a, b) { |
23018 | return b.length - a.length; | 23050 | return b.length - a.length; |
23019 | } | 23051 | } |
23020 | 23052 | ||
23021 | var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], | 23053 | var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], |
23022 | i, mom, minp, shortp, longp; | 23054 | i, mom, minp, shortp, longp; |
23023 | for (i = 0; i < 7; i++) { | 23055 | for (i = 0; i < 7; i++) { |
23024 | // make the regex if we don't have it already | 23056 | // make the regex if we don't have it already |
23025 | mom = create_utc__createUTC([2000, 1]).day(i); | 23057 | mom = createUTC([2000, 1]).day(i); |
23026 | minp = this.weekdaysMin(mom, ''); | 23058 | minp = this.weekdaysMin(mom, ''); |
23027 | shortp = this.weekdaysShort(mom, ''); | 23059 | shortp = this.weekdaysShort(mom, ''); |
23028 | longp = this.weekdays(mom, ''); | 23060 | longp = this.weekdays(mom, ''); |
23029 | minPieces.push(minp); | 23061 | minPieces.push(minp); |
23030 | shortPieces.push(shortp); | 23062 | shortPieces.push(shortp); |
23031 | longPieces.push(longp); | 23063 | longPieces.push(longp); |
23032 | mixedPieces.push(minp); | 23064 | mixedPieces.push(minp); |
23033 | mixedPieces.push(shortp); | 23065 | mixedPieces.push(shortp); |
23034 | mixedPieces.push(longp); | 23066 | mixedPieces.push(longp); |
23035 | } | 23067 | } |
23036 | // Sorting makes sure if one weekday (or abbr) is a prefix of another it | 23068 | // Sorting makes sure if one weekday (or abbr) is a prefix of another it |
23037 | // will match the longer piece. | 23069 | // will match the longer piece. |
23038 | minPieces.sort(cmpLenRev); | 23070 | minPieces.sort(cmpLenRev); |
23039 | shortPieces.sort(cmpLenRev); | 23071 | shortPieces.sort(cmpLenRev); |
23040 | longPieces.sort(cmpLenRev); | 23072 | longPieces.sort(cmpLenRev); |
23041 | mixedPieces.sort(cmpLenRev); | 23073 | mixedPieces.sort(cmpLenRev); |
23042 | for (i = 0; i < 7; i++) { | 23074 | for (i = 0; i < 7; i++) { |
23043 | shortPieces[i] = regexEscape(shortPieces[i]); | 23075 | shortPieces[i] = regexEscape(shortPieces[i]); |
23044 | longPieces[i] = regexEscape(longPieces[i]); | 23076 | longPieces[i] = regexEscape(longPieces[i]); |
23045 | mixedPieces[i] = regexEscape(mixedPieces[i]); | 23077 | mixedPieces[i] = regexEscape(mixedPieces[i]); |
23046 | } | 23078 | } |
23047 | 23079 | ||
23048 | this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); | 23080 | this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); |
23049 | this._weekdaysShortRegex = this._weekdaysRegex; | 23081 | this._weekdaysShortRegex = this._weekdaysRegex; |
23050 | this._weekdaysMinRegex = this._weekdaysRegex; | 23082 | this._weekdaysMinRegex = this._weekdaysRegex; |
23051 | 23083 | ||
23052 | this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); | 23084 | this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); |
23053 | this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); | 23085 | this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); |
23054 | this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); | 23086 | this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); |
23055 | } | 23087 | } |
23056 | 23088 | ||
23057 | // FORMATTING | 23089 | // FORMATTING |
23058 | 23090 | ||
23059 | function hFormat() { | 23091 | function hFormat() { |
23060 | return this.hours() % 12 || 12; | 23092 | return this.hours() % 12 || 12; |
23061 | } | 23093 | } |
23062 | 23094 | ||
23063 | function kFormat() { | 23095 | function kFormat() { |
23064 | return this.hours() || 24; | 23096 | return this.hours() || 24; |
23065 | } | 23097 | } |
23066 | 23098 | ||
23067 | addFormatToken('H', ['HH', 2], 0, 'hour'); | 23099 | addFormatToken('H', ['HH', 2], 0, 'hour'); |
23068 | addFormatToken('h', ['hh', 2], 0, hFormat); | 23100 | addFormatToken('h', ['hh', 2], 0, hFormat); |
23069 | addFormatToken('k', ['kk', 2], 0, kFormat); | 23101 | addFormatToken('k', ['kk', 2], 0, kFormat); |
23070 | 23102 | ||
23071 | addFormatToken('hmm', 0, 0, function () { | 23103 | addFormatToken('hmm', 0, 0, function () { |
23072 | return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); | 23104 | return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); |
23073 | }); | 23105 | }); |
23074 | 23106 | ||
23075 | addFormatToken('hmmss', 0, 0, function () { | 23107 | addFormatToken('hmmss', 0, 0, function () { |
23076 | return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + | 23108 | return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + |
23077 | zeroFill(this.seconds(), 2); | 23109 | zeroFill(this.seconds(), 2); |
23078 | }); | 23110 | }); |
23079 | 23111 | ||
23080 | addFormatToken('Hmm', 0, 0, function () { | 23112 | addFormatToken('Hmm', 0, 0, function () { |
23081 | return '' + this.hours() + zeroFill(this.minutes(), 2); | 23113 | return '' + this.hours() + zeroFill(this.minutes(), 2); |
23082 | }); | 23114 | }); |
23083 | 23115 | ||
23084 | addFormatToken('Hmmss', 0, 0, function () { | 23116 | addFormatToken('Hmmss', 0, 0, function () { |
23085 | return '' + this.hours() + zeroFill(this.minutes(), 2) + | 23117 | return '' + this.hours() + zeroFill(this.minutes(), 2) + |
23086 | zeroFill(this.seconds(), 2); | 23118 | zeroFill(this.seconds(), 2); |
23119 | }); | ||
23120 | |||
23121 | function meridiem (token, lowercase) { | ||
23122 | addFormatToken(token, 0, 0, function () { | ||
23123 | return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); | ||
23087 | }); | 23124 | }); |
23125 | } | ||
23088 | 23126 | ||
23089 | function meridiem (token, lowercase) { | 23127 | meridiem('a', true); |
23090 | addFormatToken(token, 0, 0, function () { | 23128 | meridiem('A', false); |
23091 | return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); | ||
23092 | }); | ||
23093 | } | ||
23094 | 23129 | ||
23095 | meridiem('a', true); | 23130 | // ALIASES |
23096 | meridiem('A', false); | ||
23097 | 23131 | ||
23098 | // ALIASES | 23132 | addUnitAlias('hour', 'h'); |
23099 | 23133 | ||
23100 | addUnitAlias('hour', 'h'); | 23134 | // PRIORITY |
23135 | addUnitPriority('hour', 13); | ||
23101 | 23136 | ||
23102 | // PRIORITY | 23137 | // PARSING |
23103 | addUnitPriority('hour', 13); | ||
23104 | 23138 | ||
23105 | // PARSING | 23139 | function matchMeridiem (isStrict, locale) { |
23140 | return locale._meridiemParse; | ||
23141 | } | ||
23106 | 23142 | ||
23107 | function matchMeridiem (isStrict, locale) { | 23143 | addRegexToken('a', matchMeridiem); |
23108 | return locale._meridiemParse; | 23144 | addRegexToken('A', matchMeridiem); |
23109 | } | 23145 | addRegexToken('H', match1to2); |
23146 | addRegexToken('h', match1to2); | ||
23147 | addRegexToken('HH', match1to2, match2); | ||
23148 | addRegexToken('hh', match1to2, match2); | ||
23110 | 23149 | ||
23111 | addRegexToken('a', matchMeridiem); | 23150 | addRegexToken('hmm', match3to4); |
23112 | addRegexToken('A', matchMeridiem); | 23151 | addRegexToken('hmmss', match5to6); |
23113 | addRegexToken('H', match1to2); | 23152 | addRegexToken('Hmm', match3to4); |
23114 | addRegexToken('h', match1to2); | 23153 | addRegexToken('Hmmss', match5to6); |
23115 | addRegexToken('HH', match1to2, match2); | ||
23116 | addRegexToken('hh', match1to2, match2); | ||
23117 | 23154 | ||
23118 | addRegexToken('hmm', match3to4); | 23155 | addParseToken(['H', 'HH'], HOUR); |
23119 | addRegexToken('hmmss', match5to6); | 23156 | addParseToken(['a', 'A'], function (input, array, config) { |
23120 | addRegexToken('Hmm', match3to4); | 23157 | config._isPm = config._locale.isPM(input); |
23121 | addRegexToken('Hmmss', match5to6); | 23158 | config._meridiem = input; |
23159 | }); | ||
23160 | addParseToken(['h', 'hh'], function (input, array, config) { | ||
23161 | array[HOUR] = toInt(input); | ||
23162 | getParsingFlags(config).bigHour = true; | ||
23163 | }); | ||
23164 | addParseToken('hmm', function (input, array, config) { | ||
23165 | var pos = input.length - 2; | ||
23166 | array[HOUR] = toInt(input.substr(0, pos)); | ||
23167 | array[MINUTE] = toInt(input.substr(pos)); | ||
23168 | getParsingFlags(config).bigHour = true; | ||
23169 | }); | ||
23170 | addParseToken('hmmss', function (input, array, config) { | ||
23171 | var pos1 = input.length - 4; | ||
23172 | var pos2 = input.length - 2; | ||
23173 | array[HOUR] = toInt(input.substr(0, pos1)); | ||
23174 | array[MINUTE] = toInt(input.substr(pos1, 2)); | ||
23175 | array[SECOND] = toInt(input.substr(pos2)); | ||
23176 | getParsingFlags(config).bigHour = true; | ||
23177 | }); | ||
23178 | addParseToken('Hmm', function (input, array, config) { | ||
23179 | var pos = input.length - 2; | ||
23180 | array[HOUR] = toInt(input.substr(0, pos)); | ||
23181 | array[MINUTE] = toInt(input.substr(pos)); | ||
23182 | }); | ||
23183 | addParseToken('Hmmss', function (input, array, config) { | ||
23184 | var pos1 = input.length - 4; | ||
23185 | var pos2 = input.length - 2; | ||
23186 | array[HOUR] = toInt(input.substr(0, pos1)); | ||
23187 | array[MINUTE] = toInt(input.substr(pos1, 2)); | ||
23188 | array[SECOND] = toInt(input.substr(pos2)); | ||
23189 | }); | ||
23122 | 23190 | ||
23123 | addParseToken(['H', 'HH'], HOUR); | 23191 | // LOCALES |
23124 | addParseToken(['a', 'A'], function (input, array, config) { | ||
23125 | config._isPm = config._locale.isPM(input); | ||
23126 | config._meridiem = input; | ||
23127 | }); | ||
23128 | addParseToken(['h', 'hh'], function (input, array, config) { | ||
23129 | array[HOUR] = toInt(input); | ||
23130 | getParsingFlags(config).bigHour = true; | ||
23131 | }); | ||
23132 | addParseToken('hmm', function (input, array, config) { | ||
23133 | var pos = input.length - 2; | ||
23134 | array[HOUR] = toInt(input.substr(0, pos)); | ||
23135 | array[MINUTE] = toInt(input.substr(pos)); | ||
23136 | getParsingFlags(config).bigHour = true; | ||
23137 | }); | ||
23138 | addParseToken('hmmss', function (input, array, config) { | ||
23139 | var pos1 = input.length - 4; | ||
23140 | var pos2 = input.length - 2; | ||
23141 | array[HOUR] = toInt(input.substr(0, pos1)); | ||
23142 | array[MINUTE] = toInt(input.substr(pos1, 2)); | ||
23143 | array[SECOND] = toInt(input.substr(pos2)); | ||
23144 | getParsingFlags(config).bigHour = true; | ||
23145 | }); | ||
23146 | addParseToken('Hmm', function (input, array, config) { | ||
23147 | var pos = input.length - 2; | ||
23148 | array[HOUR] = toInt(input.substr(0, pos)); | ||
23149 | array[MINUTE] = toInt(input.substr(pos)); | ||
23150 | }); | ||
23151 | addParseToken('Hmmss', function (input, array, config) { | ||
23152 | var pos1 = input.length - 4; | ||
23153 | var pos2 = input.length - 2; | ||
23154 | array[HOUR] = toInt(input.substr(0, pos1)); | ||
23155 | array[MINUTE] = toInt(input.substr(pos1, 2)); | ||
23156 | array[SECOND] = toInt(input.substr(pos2)); | ||
23157 | }); | ||
23158 | 23192 | ||
23159 | // LOCALES | 23193 | function localeIsPM (input) { |
23194 | // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays | ||
23195 | // Using charAt should be more compatible. | ||
23196 | return ((input + '').toLowerCase().charAt(0) === 'p'); | ||
23197 | } | ||
23160 | 23198 | ||
23161 | function localeIsPM (input) { | 23199 | var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; |
23162 | // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays | 23200 | function localeMeridiem (hours, minutes, isLower) { |
23163 | // Using charAt should be more compatible. | 23201 | if (hours > 11) { |
23164 | return ((input + '').toLowerCase().charAt(0) === 'p'); | 23202 | return isLower ? 'pm' : 'PM'; |
23203 | } else { | ||
23204 | return isLower ? 'am' : 'AM'; | ||
23165 | } | 23205 | } |
23206 | } | ||
23166 | 23207 | ||
23167 | var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; | ||
23168 | function localeMeridiem (hours, minutes, isLower) { | ||
23169 | if (hours > 11) { | ||
23170 | return isLower ? 'pm' : 'PM'; | ||
23171 | } else { | ||
23172 | return isLower ? 'am' : 'AM'; | ||
23173 | } | ||
23174 | } | ||
23175 | 23208 | ||
23209 | // MOMENTS | ||
23176 | 23210 | ||
23177 | // MOMENTS | 23211 | // Setting the hour should keep the time, because the user explicitly |
23212 | // specified which hour he wants. So trying to maintain the same hour (in | ||
23213 | // a new timezone) makes sense. Adding/subtracting hours does not follow | ||
23214 | // this rule. | ||
23215 | var getSetHour = makeGetSet('Hours', true); | ||
23178 | 23216 | ||
23179 | // Setting the hour should keep the time, because the user explicitly | 23217 | // months |
23180 | // specified which hour he wants. So trying to maintain the same hour (in | 23218 | // week |
23181 | // a new timezone) makes sense. Adding/subtracting hours does not follow | 23219 | // weekdays |
23182 | // this rule. | 23220 | // meridiem |
23183 | var getSetHour = makeGetSet('Hours', true); | 23221 | var baseConfig = { |
23222 | calendar: defaultCalendar, | ||
23223 | longDateFormat: defaultLongDateFormat, | ||
23224 | invalidDate: defaultInvalidDate, | ||
23225 | ordinal: defaultOrdinal, | ||
23226 | ordinalParse: defaultOrdinalParse, | ||
23227 | relativeTime: defaultRelativeTime, | ||
23184 | 23228 | ||
23185 | var baseConfig = { | 23229 | months: defaultLocaleMonths, |
23186 | calendar: defaultCalendar, | 23230 | monthsShort: defaultLocaleMonthsShort, |
23187 | longDateFormat: defaultLongDateFormat, | ||
23188 | invalidDate: defaultInvalidDate, | ||
23189 | ordinal: defaultOrdinal, | ||
23190 | ordinalParse: defaultOrdinalParse, | ||
23191 | relativeTime: defaultRelativeTime, | ||
23192 | 23231 | ||
23193 | months: defaultLocaleMonths, | 23232 | week: defaultLocaleWeek, |
23194 | monthsShort: defaultLocaleMonthsShort, | ||
23195 | 23233 | ||
23196 | week: defaultLocaleWeek, | 23234 | weekdays: defaultLocaleWeekdays, |
23235 | weekdaysMin: defaultLocaleWeekdaysMin, | ||
23236 | weekdaysShort: defaultLocaleWeekdaysShort, | ||
23197 | 23237 | ||
23198 | weekdays: defaultLocaleWeekdays, | 23238 | meridiemParse: defaultLocaleMeridiemParse |
23199 | weekdaysMin: defaultLocaleWeekdaysMin, | 23239 | }; |
23200 | weekdaysShort: defaultLocaleWeekdaysShort, | ||
23201 | 23240 | ||
23202 | meridiemParse: defaultLocaleMeridiemParse | 23241 | // internal storage for locale config files |
23203 | }; | 23242 | var locales = {}; |
23243 | var localeFamilies = {}; | ||
23244 | var globalLocale; | ||
23204 | 23245 | ||
23205 | // internal storage for locale config files | 23246 | function normalizeLocale(key) { |
23206 | var locales = {}; | 23247 | return key ? key.toLowerCase().replace('_', '-') : key; |
23207 | var globalLocale; | 23248 | } |
23208 | 23249 | ||
23209 | function normalizeLocale(key) { | 23250 | // pick the locale from the array |
23210 | return key ? key.toLowerCase().replace('_', '-') : key; | 23251 | // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each |
23211 | } | 23252 | // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root |
23212 | 23253 | function chooseLocale(names) { | |
23213 | // pick the locale from the array | 23254 | var i = 0, j, next, locale, split; |
23214 | // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each | 23255 | |
23215 | // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root | 23256 | while (i < names.length) { |
23216 | function chooseLocale(names) { | 23257 | split = normalizeLocale(names[i]).split('-'); |
23217 | var i = 0, j, next, locale, split; | 23258 | j = split.length; |
23218 | 23259 | next = normalizeLocale(names[i + 1]); | |
23219 | while (i < names.length) { | 23260 | next = next ? next.split('-') : null; |
23220 | split = normalizeLocale(names[i]).split('-'); | 23261 | while (j > 0) { |
23221 | j = split.length; | 23262 | locale = loadLocale(split.slice(0, j).join('-')); |
23222 | next = normalizeLocale(names[i + 1]); | 23263 | if (locale) { |
23223 | next = next ? next.split('-') : null; | 23264 | return locale; |
23224 | while (j > 0) { | 23265 | } |
23225 | locale = loadLocale(split.slice(0, j).join('-')); | 23266 | if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { |
23226 | if (locale) { | 23267 | //the next array item is better than a shallower substring of this one |
23227 | return locale; | 23268 | break; |
23228 | } | ||
23229 | if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { | ||
23230 | //the next array item is better than a shallower substring of this one | ||
23231 | break; | ||
23232 | } | ||
23233 | j--; | ||
23234 | } | 23269 | } |
23235 | i++; | 23270 | j--; |
23236 | } | 23271 | } |
23237 | return null; | 23272 | i++; |
23238 | } | 23273 | } |
23274 | return null; | ||
23275 | } | ||
23239 | 23276 | ||
23240 | function loadLocale(name) { | 23277 | function loadLocale(name) { |
23241 | var oldLocale = null; | 23278 | var oldLocale = null; |
23242 | // TODO: Find a better way to register and load all the locales in Node | 23279 | // TODO: Find a better way to register and load all the locales in Node |
23243 | if (!locales[name] && (typeof module !== 'undefined') && | 23280 | if (!locales[name] && (typeof module !== 'undefined') && |
23244 | module && module.exports) { | 23281 | module && module.exports) { |
23245 | try { | 23282 | try { |
23246 | oldLocale = globalLocale._abbr; | 23283 | oldLocale = globalLocale._abbr; |
23247 | require('./locale/' + name); | 23284 | require('./locale/' + name); |
23248 | // because defineLocale currently also sets the global locale, we | 23285 | // because defineLocale currently also sets the global locale, we |
23249 | // want to undo that for lazy loaded locales | 23286 | // want to undo that for lazy loaded locales |
23250 | locale_locales__getSetGlobalLocale(oldLocale); | 23287 | getSetGlobalLocale(oldLocale); |
23251 | } catch (e) { } | 23288 | } catch (e) { } |
23252 | } | ||
23253 | return locales[name]; | ||
23254 | } | 23289 | } |
23290 | return locales[name]; | ||
23291 | } | ||
23255 | 23292 | ||
23256 | // This function will load locale and then set the global locale. If | 23293 | // This function will load locale and then set the global locale. If |
23257 | // no arguments are passed in, it will simply return the current global | 23294 | // no arguments are passed in, it will simply return the current global |
23258 | // locale key. | 23295 | // locale key. |
23259 | function locale_locales__getSetGlobalLocale (key, values) { | 23296 | function getSetGlobalLocale (key, values) { |
23260 | var data; | 23297 | var data; |
23261 | if (key) { | 23298 | if (key) { |
23262 | if (isUndefined(values)) { | 23299 | if (isUndefined(values)) { |
23263 | data = locale_locales__getLocale(key); | 23300 | data = getLocale(key); |
23264 | } | 23301 | } |
23265 | else { | 23302 | else { |
23266 | data = defineLocale(key, values); | 23303 | data = defineLocale(key, values); |
23267 | } | 23304 | } |
23268 | 23305 | ||
23269 | if (data) { | 23306 | if (data) { |
23270 | // moment.duration._locale = moment._locale = data; | 23307 | // moment.duration._locale = moment._locale = data; |
23271 | globalLocale = data; | 23308 | globalLocale = data; |
23272 | } | ||
23273 | } | 23309 | } |
23310 | } | ||
23274 | 23311 | ||
23275 | return globalLocale._abbr; | 23312 | return globalLocale._abbr; |
23276 | } | 23313 | } |
23277 | 23314 | ||
23278 | function defineLocale (name, config) { | 23315 | function defineLocale (name, config) { |
23279 | if (config !== null) { | 23316 | if (config !== null) { |
23280 | var parentConfig = baseConfig; | 23317 | var parentConfig = baseConfig; |
23281 | config.abbr = name; | 23318 | config.abbr = name; |
23282 | if (locales[name] != null) { | 23319 | if (locales[name] != null) { |
23283 | deprecateSimple('defineLocaleOverride', | 23320 | deprecateSimple('defineLocaleOverride', |
23284 | 'use moment.updateLocale(localeName, config) to change ' + | 23321 | 'use moment.updateLocale(localeName, config) to change ' + |
23285 | 'an existing locale. moment.defineLocale(localeName, ' + | 23322 | 'an existing locale. moment.defineLocale(localeName, ' + |
23286 | 'config) should only be used for creating a new locale ' + | 23323 | 'config) should only be used for creating a new locale ' + |
23287 | 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); | 23324 | 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); |
23288 | parentConfig = locales[name]._config; | 23325 | parentConfig = locales[name]._config; |
23289 | } else if (config.parentLocale != null) { | 23326 | } else if (config.parentLocale != null) { |
23290 | if (locales[config.parentLocale] != null) { | 23327 | if (locales[config.parentLocale] != null) { |
23291 | parentConfig = locales[config.parentLocale]._config; | 23328 | parentConfig = locales[config.parentLocale]._config; |
23292 | } else { | 23329 | } else { |
23293 | // treat as if there is no base config | 23330 | if (!localeFamilies[config.parentLocale]) { |
23294 | deprecateSimple('parentLocaleUndefined', | 23331 | localeFamilies[config.parentLocale] = []; |
23295 | 'specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/'); | ||
23296 | } | 23332 | } |
23333 | localeFamilies[config.parentLocale].push({ | ||
23334 | name: name, | ||
23335 | config: config | ||
23336 | }); | ||
23337 | return null; | ||
23297 | } | 23338 | } |
23298 | locales[name] = new Locale(mergeConfigs(parentConfig, config)); | 23339 | } |
23299 | 23340 | locales[name] = new Locale(mergeConfigs(parentConfig, config)); | |
23300 | // backwards compat for now: also set the locale | ||
23301 | locale_locales__getSetGlobalLocale(name); | ||
23302 | 23341 | ||
23303 | return locales[name]; | 23342 | if (localeFamilies[name]) { |
23304 | } else { | 23343 | localeFamilies[name].forEach(function (x) { |
23305 | // useful for testing | 23344 | defineLocale(x.name, x.config); |
23306 | delete locales[name]; | 23345 | }); |
23307 | return null; | ||
23308 | } | 23346 | } |
23347 | |||
23348 | // backwards compat for now: also set the locale | ||
23349 | // make sure we set the locale AFTER all child locales have been | ||
23350 | // created, so we won't end up with the child locale set. | ||
23351 | getSetGlobalLocale(name); | ||
23352 | |||
23353 | |||
23354 | return locales[name]; | ||
23355 | } else { | ||
23356 | // useful for testing | ||
23357 | delete locales[name]; | ||
23358 | return null; | ||
23309 | } | 23359 | } |
23360 | } | ||
23310 | 23361 | ||
23311 | function updateLocale(name, config) { | 23362 | function updateLocale(name, config) { |
23312 | if (config != null) { | 23363 | if (config != null) { |
23313 | var locale, parentConfig = baseConfig; | 23364 | var locale, parentConfig = baseConfig; |
23314 | // MERGE | 23365 | // MERGE |
23315 | if (locales[name] != null) { | 23366 | if (locales[name] != null) { |
23316 | parentConfig = locales[name]._config; | 23367 | parentConfig = locales[name]._config; |
23317 | } | 23368 | } |
23318 | config = mergeConfigs(parentConfig, config); | 23369 | config = mergeConfigs(parentConfig, config); |
23319 | locale = new Locale(config); | 23370 | locale = new Locale(config); |
23320 | locale.parentLocale = locales[name]; | 23371 | locale.parentLocale = locales[name]; |
23321 | locales[name] = locale; | 23372 | locales[name] = locale; |
23322 | 23373 | ||
23323 | // backwards compat for now: also set the locale | 23374 | // backwards compat for now: also set the locale |
23324 | locale_locales__getSetGlobalLocale(name); | 23375 | getSetGlobalLocale(name); |
23325 | } else { | 23376 | } else { |
23326 | // pass null for config to unupdate, useful for tests | 23377 | // pass null for config to unupdate, useful for tests |
23327 | if (locales[name] != null) { | 23378 | if (locales[name] != null) { |
23328 | if (locales[name].parentLocale != null) { | 23379 | if (locales[name].parentLocale != null) { |
23329 | locales[name] = locales[name].parentLocale; | 23380 | locales[name] = locales[name].parentLocale; |
23330 | } else if (locales[name] != null) { | 23381 | } else if (locales[name] != null) { |
23331 | delete locales[name]; | 23382 | delete locales[name]; |
23332 | } | ||
23333 | } | 23383 | } |
23334 | } | 23384 | } |
23335 | return locales[name]; | ||
23336 | } | 23385 | } |
23386 | return locales[name]; | ||
23387 | } | ||
23337 | 23388 | ||
23338 | // returns locale data | 23389 | // returns locale data |
23339 | function locale_locales__getLocale (key) { | 23390 | function getLocale (key) { |
23340 | var locale; | 23391 | var locale; |
23341 | 23392 | ||
23342 | if (key && key._locale && key._locale._abbr) { | 23393 | if (key && key._locale && key._locale._abbr) { |
23343 | key = key._locale._abbr; | 23394 | key = key._locale._abbr; |
23344 | } | 23395 | } |
23345 | 23396 | ||
23346 | if (!key) { | 23397 | if (!key) { |
23347 | return globalLocale; | 23398 | return globalLocale; |
23399 | } | ||
23400 | |||
23401 | if (!isArray(key)) { | ||
23402 | //short-circuit everything else | ||
23403 | locale = loadLocale(key); | ||
23404 | if (locale) { | ||
23405 | return locale; | ||
23348 | } | 23406 | } |
23407 | key = [key]; | ||
23408 | } | ||
23349 | 23409 | ||
23350 | if (!isArray(key)) { | 23410 | return chooseLocale(key); |
23351 | //short-circuit everything else | 23411 | } |
23352 | locale = loadLocale(key); | 23412 | |
23353 | if (locale) { | 23413 | function listLocales() { |
23354 | return locale; | 23414 | return keys$1(locales); |
23355 | } | 23415 | } |
23356 | key = [key]; | 23416 | |
23417 | function checkOverflow (m) { | ||
23418 | var overflow; | ||
23419 | var a = m._a; | ||
23420 | |||
23421 | if (a && getParsingFlags(m).overflow === -2) { | ||
23422 | overflow = | ||
23423 | a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : | ||
23424 | a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : | ||
23425 | a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : | ||
23426 | a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : | ||
23427 | a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : | ||
23428 | a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : | ||
23429 | -1; | ||
23430 | |||
23431 | if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { | ||
23432 | overflow = DATE; | ||
23433 | } | ||
23434 | if (getParsingFlags(m)._overflowWeeks && overflow === -1) { | ||
23435 | overflow = WEEK; | ||
23436 | } | ||
23437 | if (getParsingFlags(m)._overflowWeekday && overflow === -1) { | ||
23438 | overflow = WEEKDAY; | ||
23357 | } | 23439 | } |
23358 | 23440 | ||
23359 | return chooseLocale(key); | 23441 | getParsingFlags(m).overflow = overflow; |
23360 | } | 23442 | } |
23361 | 23443 | ||
23362 | function locale_locales__listLocales() { | 23444 | return m; |
23363 | return keys(locales); | 23445 | } |
23364 | } | ||
23365 | 23446 | ||
23366 | function checkOverflow (m) { | 23447 | // iso 8601 regex |
23367 | var overflow; | 23448 | // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) |
23368 | var a = m._a; | 23449 | var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; |
23450 | var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; | ||
23369 | 23451 | ||
23370 | if (a && getParsingFlags(m).overflow === -2) { | 23452 | var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; |
23371 | overflow = | ||
23372 | a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : | ||
23373 | a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : | ||
23374 | a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : | ||
23375 | a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : | ||
23376 | a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : | ||
23377 | a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : | ||
23378 | -1; | ||
23379 | 23453 | ||
23380 | if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { | 23454 | var isoDates = [ |
23381 | overflow = DATE; | 23455 | ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], |
23382 | } | 23456 | ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], |
23383 | if (getParsingFlags(m)._overflowWeeks && overflow === -1) { | 23457 | ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], |
23384 | overflow = WEEK; | 23458 | ['GGGG-[W]WW', /\d{4}-W\d\d/, false], |
23385 | } | 23459 | ['YYYY-DDD', /\d{4}-\d{3}/], |
23386 | if (getParsingFlags(m)._overflowWeekday && overflow === -1) { | 23460 | ['YYYY-MM', /\d{4}-\d\d/, false], |
23387 | overflow = WEEKDAY; | 23461 | ['YYYYYYMMDD', /[+-]\d{10}/], |
23388 | } | 23462 | ['YYYYMMDD', /\d{8}/], |
23463 | // YYYYMM is NOT allowed by the standard | ||
23464 | ['GGGG[W]WWE', /\d{4}W\d{3}/], | ||
23465 | ['GGGG[W]WW', /\d{4}W\d{2}/, false], | ||
23466 | ['YYYYDDD', /\d{7}/] | ||
23467 | ]; | ||
23389 | 23468 | ||
23390 | getParsingFlags(m).overflow = overflow; | 23469 | // iso time formats and regexes |
23391 | } | 23470 | var isoTimes = [ |
23471 | ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], | ||
23472 | ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], | ||
23473 | ['HH:mm:ss', /\d\d:\d\d:\d\d/], | ||
23474 | ['HH:mm', /\d\d:\d\d/], | ||
23475 | ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], | ||
23476 | ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], | ||
23477 | ['HHmmss', /\d\d\d\d\d\d/], | ||
23478 | ['HHmm', /\d\d\d\d/], | ||
23479 | ['HH', /\d\d/] | ||
23480 | ]; | ||
23481 | |||
23482 | var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; | ||
23392 | 23483 | ||
23393 | return m; | 23484 | // date from iso format |
23394 | } | 23485 | function configFromISO(config) { |
23395 | 23486 | var i, l, | |
23396 | // iso 8601 regex | 23487 | string = config._i, |
23397 | // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) | 23488 | match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), |
23398 | var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; | 23489 | allowTime, dateFormat, timeFormat, tzFormat; |
23399 | var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; | 23490 | |
23400 | 23491 | if (match) { | |
23401 | var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; | 23492 | getParsingFlags(config).iso = true; |
23402 | 23493 | ||
23403 | var isoDates = [ | 23494 | for (i = 0, l = isoDates.length; i < l; i++) { |
23404 | ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], | 23495 | if (isoDates[i][1].exec(match[1])) { |
23405 | ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], | 23496 | dateFormat = isoDates[i][0]; |
23406 | ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], | 23497 | allowTime = isoDates[i][2] !== false; |
23407 | ['GGGG-[W]WW', /\d{4}-W\d\d/, false], | 23498 | break; |
23408 | ['YYYY-DDD', /\d{4}-\d{3}/], | 23499 | } |
23409 | ['YYYY-MM', /\d{4}-\d\d/, false], | 23500 | } |
23410 | ['YYYYYYMMDD', /[+-]\d{10}/], | 23501 | if (dateFormat == null) { |
23411 | ['YYYYMMDD', /\d{8}/], | 23502 | config._isValid = false; |
23412 | // YYYYMM is NOT allowed by the standard | 23503 | return; |
23413 | ['GGGG[W]WWE', /\d{4}W\d{3}/], | 23504 | } |
23414 | ['GGGG[W]WW', /\d{4}W\d{2}/, false], | 23505 | if (match[3]) { |
23415 | ['YYYYDDD', /\d{7}/] | 23506 | for (i = 0, l = isoTimes.length; i < l; i++) { |
23416 | ]; | 23507 | if (isoTimes[i][1].exec(match[3])) { |
23417 | 23508 | // match[2] should be 'T' or space | |
23418 | // iso time formats and regexes | 23509 | timeFormat = (match[2] || ' ') + isoTimes[i][0]; |
23419 | var isoTimes = [ | ||
23420 | ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], | ||
23421 | ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], | ||
23422 | ['HH:mm:ss', /\d\d:\d\d:\d\d/], | ||
23423 | ['HH:mm', /\d\d:\d\d/], | ||
23424 | ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], | ||
23425 | ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], | ||
23426 | ['HHmmss', /\d\d\d\d\d\d/], | ||
23427 | ['HHmm', /\d\d\d\d/], | ||
23428 | ['HH', /\d\d/] | ||
23429 | ]; | ||
23430 | |||
23431 | var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; | ||
23432 | |||
23433 | // date from iso format | ||
23434 | function configFromISO(config) { | ||
23435 | var i, l, | ||
23436 | string = config._i, | ||
23437 | match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), | ||
23438 | allowTime, dateFormat, timeFormat, tzFormat; | ||
23439 | |||
23440 | if (match) { | ||
23441 | getParsingFlags(config).iso = true; | ||
23442 | |||
23443 | for (i = 0, l = isoDates.length; i < l; i++) { | ||
23444 | if (isoDates[i][1].exec(match[1])) { | ||
23445 | dateFormat = isoDates[i][0]; | ||
23446 | allowTime = isoDates[i][2] !== false; | ||
23447 | break; | 23510 | break; |
23448 | } | 23511 | } |
23449 | } | 23512 | } |
23450 | if (dateFormat == null) { | 23513 | if (timeFormat == null) { |
23451 | config._isValid = false; | 23514 | config._isValid = false; |
23452 | return; | 23515 | return; |
23453 | } | 23516 | } |
23454 | if (match[3]) { | 23517 | } |
23455 | for (i = 0, l = isoTimes.length; i < l; i++) { | 23518 | if (!allowTime && timeFormat != null) { |
23456 | if (isoTimes[i][1].exec(match[3])) { | 23519 | config._isValid = false; |
23457 | // match[2] should be 'T' or space | 23520 | return; |
23458 | timeFormat = (match[2] || ' ') + isoTimes[i][0]; | 23521 | } |
23459 | break; | 23522 | if (match[4]) { |
23460 | } | 23523 | if (tzRegex.exec(match[4])) { |
23461 | } | 23524 | tzFormat = 'Z'; |
23462 | if (timeFormat == null) { | 23525 | } else { |
23463 | config._isValid = false; | ||
23464 | return; | ||
23465 | } | ||
23466 | } | ||
23467 | if (!allowTime && timeFormat != null) { | ||
23468 | config._isValid = false; | 23526 | config._isValid = false; |
23469 | return; | 23527 | return; |
23470 | } | 23528 | } |
23471 | if (match[4]) { | ||
23472 | if (tzRegex.exec(match[4])) { | ||
23473 | tzFormat = 'Z'; | ||
23474 | } else { | ||
23475 | config._isValid = false; | ||
23476 | return; | ||
23477 | } | ||
23478 | } | ||
23479 | config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); | ||
23480 | configFromStringAndFormat(config); | ||
23481 | } else { | ||
23482 | config._isValid = false; | ||
23483 | } | 23529 | } |
23530 | config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); | ||
23531 | configFromStringAndFormat(config); | ||
23532 | } else { | ||
23533 | config._isValid = false; | ||
23484 | } | 23534 | } |
23535 | } | ||
23485 | 23536 | ||
23486 | // date from iso format or fallback | 23537 | // date from iso format or fallback |
23487 | function configFromString(config) { | 23538 | function configFromString(config) { |
23488 | var matched = aspNetJsonRegex.exec(config._i); | 23539 | var matched = aspNetJsonRegex.exec(config._i); |
23489 | 23540 | ||
23490 | if (matched !== null) { | 23541 | if (matched !== null) { |
23491 | config._d = new Date(+matched[1]); | 23542 | config._d = new Date(+matched[1]); |
23492 | return; | 23543 | return; |
23493 | } | 23544 | } |
23494 | 23545 | ||
23495 | configFromISO(config); | 23546 | configFromISO(config); |
23496 | if (config._isValid === false) { | 23547 | if (config._isValid === false) { |
23497 | delete config._isValid; | 23548 | delete config._isValid; |
23498 | utils_hooks__hooks.createFromInputFallback(config); | 23549 | hooks.createFromInputFallback(config); |
23499 | } | ||
23500 | } | 23550 | } |
23551 | } | ||
23501 | 23552 | ||
23502 | utils_hooks__hooks.createFromInputFallback = deprecate( | 23553 | hooks.createFromInputFallback = deprecate( |
23503 | 'moment construction falls back to js Date. This is ' + | 23554 | 'value provided is not in a recognized ISO format. moment construction falls back to js Date(), ' + |
23504 | 'discouraged and will be removed in upcoming major ' + | 23555 | 'which is not reliable across all browsers and versions. Non ISO date formats are ' + |
23505 | 'release. Please refer to ' + | 23556 | 'discouraged and will be removed in an upcoming major release. Please refer to ' + |
23506 | 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', | 23557 | 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', |
23507 | function (config) { | 23558 | function (config) { |
23508 | config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); | 23559 | config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); |
23509 | } | 23560 | } |
23510 | ); | 23561 | ); |
23511 | 23562 | ||
23512 | // Pick the first defined of two or three arguments. | 23563 | // Pick the first defined of two or three arguments. |
23513 | function defaults(a, b, c) { | 23564 | function defaults(a, b, c) { |
23514 | if (a != null) { | 23565 | if (a != null) { |
23515 | return a; | 23566 | return a; |
23516 | } | 23567 | } |
23517 | if (b != null) { | 23568 | if (b != null) { |
23518 | return b; | 23569 | return b; |
23519 | } | ||
23520 | return c; | ||
23521 | } | 23570 | } |
23571 | return c; | ||
23572 | } | ||
23522 | 23573 | ||
23523 | function currentDateArray(config) { | 23574 | function currentDateArray(config) { |
23524 | // hooks is actually the exported moment object | 23575 | // hooks is actually the exported moment object |
23525 | var nowValue = new Date(utils_hooks__hooks.now()); | 23576 | var nowValue = new Date(hooks.now()); |
23526 | if (config._useUTC) { | 23577 | if (config._useUTC) { |
23527 | return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; | 23578 | return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; |
23528 | } | ||
23529 | return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; | ||
23530 | } | 23579 | } |
23580 | return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; | ||
23581 | } | ||
23531 | 23582 | ||
23532 | // convert an array to a date. | 23583 | // convert an array to a date. |
23533 | // the array should mirror the parameters below | 23584 | // the array should mirror the parameters below |
23534 | // note: all values past the year are optional and will default to the lowest possible value. | 23585 | // note: all values past the year are optional and will default to the lowest possible value. |
23535 | // [year, month, day , hour, minute, second, millisecond] | 23586 | // [year, month, day , hour, minute, second, millisecond] |
23536 | function configFromArray (config) { | 23587 | function configFromArray (config) { |
23537 | var i, date, input = [], currentDate, yearToUse; | 23588 | var i, date, input = [], currentDate, yearToUse; |
23538 | 23589 | ||
23539 | if (config._d) { | 23590 | if (config._d) { |
23540 | return; | 23591 | return; |
23541 | } | 23592 | } |
23593 | |||
23594 | currentDate = currentDateArray(config); | ||
23595 | |||
23596 | //compute day of the year from weeks and weekdays | ||
23597 | if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { | ||
23598 | dayOfYearFromWeekInfo(config); | ||
23599 | } | ||
23542 | 23600 | ||
23543 | currentDate = currentDateArray(config); | 23601 | //if the day of the year is set, figure out what it is |
23602 | if (config._dayOfYear) { | ||
23603 | yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); | ||
23544 | 23604 | ||
23545 | //compute day of the year from weeks and weekdays | 23605 | if (config._dayOfYear > daysInYear(yearToUse)) { |
23546 | if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { | 23606 | getParsingFlags(config)._overflowDayOfYear = true; |
23547 | dayOfYearFromWeekInfo(config); | ||
23548 | } | 23607 | } |
23549 | 23608 | ||
23550 | //if the day of the year is set, figure out what it is | 23609 | date = createUTCDate(yearToUse, 0, config._dayOfYear); |
23551 | if (config._dayOfYear) { | 23610 | config._a[MONTH] = date.getUTCMonth(); |
23552 | yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); | 23611 | config._a[DATE] = date.getUTCDate(); |
23612 | } | ||
23553 | 23613 | ||
23554 | if (config._dayOfYear > daysInYear(yearToUse)) { | 23614 | // Default to current date. |
23555 | getParsingFlags(config)._overflowDayOfYear = true; | 23615 | // * if no year, month, day of month are given, default to today |
23556 | } | 23616 | // * if day of month is given, default month and year |
23617 | // * if month is given, default only year | ||
23618 | // * if year is given, don't default anything | ||
23619 | for (i = 0; i < 3 && config._a[i] == null; ++i) { | ||
23620 | config._a[i] = input[i] = currentDate[i]; | ||
23621 | } | ||
23557 | 23622 | ||
23558 | date = createUTCDate(yearToUse, 0, config._dayOfYear); | 23623 | // Zero out whatever was not defaulted, including time |
23559 | config._a[MONTH] = date.getUTCMonth(); | 23624 | for (; i < 7; i++) { |
23560 | config._a[DATE] = date.getUTCDate(); | 23625 | config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; |
23561 | } | 23626 | } |
23562 | 23627 | ||
23563 | // Default to current date. | 23628 | // Check for 24:00:00.000 |
23564 | // * if no year, month, day of month are given, default to today | 23629 | if (config._a[HOUR] === 24 && |
23565 | // * if day of month is given, default month and year | 23630 | config._a[MINUTE] === 0 && |
23566 | // * if month is given, default only year | 23631 | config._a[SECOND] === 0 && |
23567 | // * if year is given, don't default anything | 23632 | config._a[MILLISECOND] === 0) { |
23568 | for (i = 0; i < 3 && config._a[i] == null; ++i) { | 23633 | config._nextDay = true; |
23569 | config._a[i] = input[i] = currentDate[i]; | 23634 | config._a[HOUR] = 0; |
23570 | } | 23635 | } |
23571 | 23636 | ||
23572 | // Zero out whatever was not defaulted, including time | 23637 | config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); |
23573 | for (; i < 7; i++) { | 23638 | // Apply timezone offset from input. The actual utcOffset can be changed |
23574 | config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; | 23639 | // with parseZone. |
23575 | } | 23640 | if (config._tzm != null) { |
23641 | config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); | ||
23642 | } | ||
23576 | 23643 | ||
23577 | // Check for 24:00:00.000 | 23644 | if (config._nextDay) { |
23578 | if (config._a[HOUR] === 24 && | 23645 | config._a[HOUR] = 24; |
23579 | config._a[MINUTE] === 0 && | 23646 | } |
23580 | config._a[SECOND] === 0 && | 23647 | } |
23581 | config._a[MILLISECOND] === 0) { | ||
23582 | config._nextDay = true; | ||
23583 | config._a[HOUR] = 0; | ||
23584 | } | ||
23585 | 23648 | ||
23586 | config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); | 23649 | function dayOfYearFromWeekInfo(config) { |
23587 | // Apply timezone offset from input. The actual utcOffset can be changed | 23650 | var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; |
23588 | // with parseZone. | 23651 | |
23589 | if (config._tzm != null) { | 23652 | w = config._w; |
23590 | config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); | 23653 | if (w.GG != null || w.W != null || w.E != null) { |
23591 | } | 23654 | dow = 1; |
23655 | doy = 4; | ||
23592 | 23656 | ||
23593 | if (config._nextDay) { | 23657 | // TODO: We need to take the current isoWeekYear, but that depends on |
23594 | config._a[HOUR] = 24; | 23658 | // how we interpret now (local, utc, fixed offset). So create |
23659 | // a now version of current config (take local/utc/offset flags, and | ||
23660 | // create now). | ||
23661 | weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); | ||
23662 | week = defaults(w.W, 1); | ||
23663 | weekday = defaults(w.E, 1); | ||
23664 | if (weekday < 1 || weekday > 7) { | ||
23665 | weekdayOverflow = true; | ||
23595 | } | 23666 | } |
23596 | } | 23667 | } else { |
23668 | dow = config._locale._week.dow; | ||
23669 | doy = config._locale._week.doy; | ||
23670 | |||
23671 | var curWeek = weekOfYear(createLocal(), dow, doy); | ||
23597 | 23672 | ||
23598 | function dayOfYearFromWeekInfo(config) { | 23673 | weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); |
23599 | var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; | ||
23600 | 23674 | ||
23601 | w = config._w; | 23675 | // Default to current week. |
23602 | if (w.GG != null || w.W != null || w.E != null) { | 23676 | week = defaults(w.w, curWeek.week); |
23603 | dow = 1; | ||
23604 | doy = 4; | ||
23605 | 23677 | ||
23606 | // TODO: We need to take the current isoWeekYear, but that depends on | 23678 | if (w.d != null) { |
23607 | // how we interpret now (local, utc, fixed offset). So create | 23679 | // weekday -- low day numbers are considered next week |
23608 | // a now version of current config (take local/utc/offset flags, and | 23680 | weekday = w.d; |
23609 | // create now). | 23681 | if (weekday < 0 || weekday > 6) { |
23610 | weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); | ||
23611 | week = defaults(w.W, 1); | ||
23612 | weekday = defaults(w.E, 1); | ||
23613 | if (weekday < 1 || weekday > 7) { | ||
23614 | weekdayOverflow = true; | 23682 | weekdayOverflow = true; |
23615 | } | 23683 | } |
23616 | } else { | 23684 | } else if (w.e != null) { |
23617 | dow = config._locale._week.dow; | 23685 | // local weekday -- counting starts from begining of week |
23618 | doy = config._locale._week.doy; | 23686 | weekday = w.e + dow; |
23619 | 23687 | if (w.e < 0 || w.e > 6) { | |
23620 | weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); | 23688 | weekdayOverflow = true; |
23621 | week = defaults(w.w, 1); | ||
23622 | |||
23623 | if (w.d != null) { | ||
23624 | // weekday -- low day numbers are considered next week | ||
23625 | weekday = w.d; | ||
23626 | if (weekday < 0 || weekday > 6) { | ||
23627 | weekdayOverflow = true; | ||
23628 | } | ||
23629 | } else if (w.e != null) { | ||
23630 | // local weekday -- counting starts from begining of week | ||
23631 | weekday = w.e + dow; | ||
23632 | if (w.e < 0 || w.e > 6) { | ||
23633 | weekdayOverflow = true; | ||
23634 | } | ||
23635 | } else { | ||
23636 | // default to begining of week | ||
23637 | weekday = dow; | ||
23638 | } | 23689 | } |
23639 | } | ||
23640 | if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { | ||
23641 | getParsingFlags(config)._overflowWeeks = true; | ||
23642 | } else if (weekdayOverflow != null) { | ||
23643 | getParsingFlags(config)._overflowWeekday = true; | ||
23644 | } else { | 23690 | } else { |
23645 | temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); | 23691 | // default to begining of week |
23646 | config._a[YEAR] = temp.year; | 23692 | weekday = dow; |
23647 | config._dayOfYear = temp.dayOfYear; | ||
23648 | } | 23693 | } |
23649 | } | 23694 | } |
23695 | if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { | ||
23696 | getParsingFlags(config)._overflowWeeks = true; | ||
23697 | } else if (weekdayOverflow != null) { | ||
23698 | getParsingFlags(config)._overflowWeekday = true; | ||
23699 | } else { | ||
23700 | temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); | ||
23701 | config._a[YEAR] = temp.year; | ||
23702 | config._dayOfYear = temp.dayOfYear; | ||
23703 | } | ||
23704 | } | ||
23650 | 23705 | ||
23651 | // constant that refers to the ISO standard | 23706 | // constant that refers to the ISO standard |
23652 | utils_hooks__hooks.ISO_8601 = function () {}; | 23707 | hooks.ISO_8601 = function () {}; |
23653 | 23708 | ||
23654 | // date from string and format string | 23709 | // date from string and format string |
23655 | function configFromStringAndFormat(config) { | 23710 | function configFromStringAndFormat(config) { |
23656 | // TODO: Move this to another part of the creation flow to prevent circular deps | 23711 | // TODO: Move this to another part of the creation flow to prevent circular deps |
23657 | if (config._f === utils_hooks__hooks.ISO_8601) { | 23712 | if (config._f === hooks.ISO_8601) { |
23658 | configFromISO(config); | 23713 | configFromISO(config); |
23659 | return; | 23714 | return; |
23660 | } | 23715 | } |
23661 | 23716 | ||
23662 | config._a = []; | 23717 | config._a = []; |
23663 | getParsingFlags(config).empty = true; | 23718 | getParsingFlags(config).empty = true; |
23664 | 23719 | ||
23665 | // This array is used to make a Date, either with `new Date` or `Date.UTC` | 23720 | // This array is used to make a Date, either with `new Date` or `Date.UTC` |
23666 | var string = '' + config._i, | 23721 | var string = '' + config._i, |
23667 | i, parsedInput, tokens, token, skipped, | 23722 | i, parsedInput, tokens, token, skipped, |
23668 | stringLength = string.length, | 23723 | stringLength = string.length, |
23669 | totalParsedInputLength = 0; | 23724 | totalParsedInputLength = 0; |
23670 | 23725 | ||
23671 | tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; | 23726 | tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; |
23672 | 23727 | ||
23673 | for (i = 0; i < tokens.length; i++) { | 23728 | for (i = 0; i < tokens.length; i++) { |
23674 | token = tokens[i]; | 23729 | token = tokens[i]; |
23675 | parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; | 23730 | parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; |
23676 | // console.log('token', token, 'parsedInput', parsedInput, | 23731 | // console.log('token', token, 'parsedInput', parsedInput, |
23677 | // 'regex', getParseRegexForToken(token, config)); | 23732 | // 'regex', getParseRegexForToken(token, config)); |
23678 | if (parsedInput) { | 23733 | if (parsedInput) { |
23679 | skipped = string.substr(0, string.indexOf(parsedInput)); | 23734 | skipped = string.substr(0, string.indexOf(parsedInput)); |
23680 | if (skipped.length > 0) { | 23735 | if (skipped.length > 0) { |
23681 | getParsingFlags(config).unusedInput.push(skipped); | 23736 | getParsingFlags(config).unusedInput.push(skipped); |
23682 | } | ||
23683 | string = string.slice(string.indexOf(parsedInput) + parsedInput.length); | ||
23684 | totalParsedInputLength += parsedInput.length; | ||
23685 | } | 23737 | } |
23686 | // don't parse if it's not a known token | 23738 | string = string.slice(string.indexOf(parsedInput) + parsedInput.length); |
23687 | if (formatTokenFunctions[token]) { | 23739 | totalParsedInputLength += parsedInput.length; |
23688 | if (parsedInput) { | 23740 | } |
23689 | getParsingFlags(config).empty = false; | 23741 | // don't parse if it's not a known token |
23690 | } | 23742 | if (formatTokenFunctions[token]) { |
23691 | else { | 23743 | if (parsedInput) { |
23692 | getParsingFlags(config).unusedTokens.push(token); | 23744 | getParsingFlags(config).empty = false; |
23693 | } | ||
23694 | addTimeToArrayFromToken(token, parsedInput, config); | ||
23695 | } | 23745 | } |
23696 | else if (config._strict && !parsedInput) { | 23746 | else { |
23697 | getParsingFlags(config).unusedTokens.push(token); | 23747 | getParsingFlags(config).unusedTokens.push(token); |
23698 | } | 23748 | } |
23749 | addTimeToArrayFromToken(token, parsedInput, config); | ||
23699 | } | 23750 | } |
23700 | 23751 | else if (config._strict && !parsedInput) { | |
23701 | // add remaining unparsed input length to the string | 23752 | getParsingFlags(config).unusedTokens.push(token); |
23702 | getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; | ||
23703 | if (string.length > 0) { | ||
23704 | getParsingFlags(config).unusedInput.push(string); | ||
23705 | } | ||
23706 | |||
23707 | // clear _12h flag if hour is <= 12 | ||
23708 | if (config._a[HOUR] <= 12 && | ||
23709 | getParsingFlags(config).bigHour === true && | ||
23710 | config._a[HOUR] > 0) { | ||
23711 | getParsingFlags(config).bigHour = undefined; | ||
23712 | } | 23753 | } |
23754 | } | ||
23713 | 23755 | ||
23714 | getParsingFlags(config).parsedDateParts = config._a.slice(0); | 23756 | // add remaining unparsed input length to the string |
23715 | getParsingFlags(config).meridiem = config._meridiem; | 23757 | getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; |
23716 | // handle meridiem | 23758 | if (string.length > 0) { |
23717 | config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); | 23759 | getParsingFlags(config).unusedInput.push(string); |
23760 | } | ||
23718 | 23761 | ||
23719 | configFromArray(config); | 23762 | // clear _12h flag if hour is <= 12 |
23720 | checkOverflow(config); | 23763 | if (config._a[HOUR] <= 12 && |
23764 | getParsingFlags(config).bigHour === true && | ||
23765 | config._a[HOUR] > 0) { | ||
23766 | getParsingFlags(config).bigHour = undefined; | ||
23721 | } | 23767 | } |
23722 | 23768 | ||
23769 | getParsingFlags(config).parsedDateParts = config._a.slice(0); | ||
23770 | getParsingFlags(config).meridiem = config._meridiem; | ||
23771 | // handle meridiem | ||
23772 | config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); | ||
23773 | |||
23774 | configFromArray(config); | ||
23775 | checkOverflow(config); | ||
23776 | } | ||
23777 | |||
23723 | 23778 | ||
23724 | function meridiemFixWrap (locale, hour, meridiem) { | 23779 | function meridiemFixWrap (locale, hour, meridiem) { |
23725 | var isPm; | 23780 | var isPm; |
23726 | 23781 | ||
23727 | if (meridiem == null) { | 23782 | if (meridiem == null) { |
23728 | // nothing to do | 23783 | // nothing to do |
23729 | return hour; | 23784 | return hour; |
23785 | } | ||
23786 | if (locale.meridiemHour != null) { | ||
23787 | return locale.meridiemHour(hour, meridiem); | ||
23788 | } else if (locale.isPM != null) { | ||
23789 | // Fallback | ||
23790 | isPm = locale.isPM(meridiem); | ||
23791 | if (isPm && hour < 12) { | ||
23792 | hour += 12; | ||
23730 | } | 23793 | } |
23731 | if (locale.meridiemHour != null) { | 23794 | if (!isPm && hour === 12) { |
23732 | return locale.meridiemHour(hour, meridiem); | 23795 | hour = 0; |
23733 | } else if (locale.isPM != null) { | ||
23734 | // Fallback | ||
23735 | isPm = locale.isPM(meridiem); | ||
23736 | if (isPm && hour < 12) { | ||
23737 | hour += 12; | ||
23738 | } | ||
23739 | if (!isPm && hour === 12) { | ||
23740 | hour = 0; | ||
23741 | } | ||
23742 | return hour; | ||
23743 | } else { | ||
23744 | // this is not supposed to happen | ||
23745 | return hour; | ||
23746 | } | 23796 | } |
23797 | return hour; | ||
23798 | } else { | ||
23799 | // this is not supposed to happen | ||
23800 | return hour; | ||
23747 | } | 23801 | } |
23802 | } | ||
23748 | 23803 | ||
23749 | // date from string and array of format strings | 23804 | // date from string and array of format strings |
23750 | function configFromStringAndArray(config) { | 23805 | function configFromStringAndArray(config) { |
23751 | var tempConfig, | 23806 | var tempConfig, |
23752 | bestMoment, | 23807 | bestMoment, |
23753 | 23808 | ||
23754 | scoreToBeat, | 23809 | scoreToBeat, |
23755 | i, | 23810 | i, |
23756 | currentScore; | 23811 | currentScore; |
23757 | 23812 | ||
23758 | if (config._f.length === 0) { | 23813 | if (config._f.length === 0) { |
23759 | getParsingFlags(config).invalidFormat = true; | 23814 | getParsingFlags(config).invalidFormat = true; |
23760 | config._d = new Date(NaN); | 23815 | config._d = new Date(NaN); |
23761 | return; | 23816 | return; |
23762 | } | 23817 | } |
23763 | 23818 | ||
23764 | for (i = 0; i < config._f.length; i++) { | 23819 | for (i = 0; i < config._f.length; i++) { |
23765 | currentScore = 0; | 23820 | currentScore = 0; |
23766 | tempConfig = copyConfig({}, config); | 23821 | tempConfig = copyConfig({}, config); |
23767 | if (config._useUTC != null) { | 23822 | if (config._useUTC != null) { |
23768 | tempConfig._useUTC = config._useUTC; | 23823 | tempConfig._useUTC = config._useUTC; |
23769 | } | 23824 | } |
23770 | tempConfig._f = config._f[i]; | 23825 | tempConfig._f = config._f[i]; |
23771 | configFromStringAndFormat(tempConfig); | 23826 | configFromStringAndFormat(tempConfig); |
23772 | 23827 | ||
23773 | if (!valid__isValid(tempConfig)) { | 23828 | if (!isValid(tempConfig)) { |
23774 | continue; | 23829 | continue; |
23775 | } | 23830 | } |
23776 | 23831 | ||
23777 | // if there is any input that was not parsed add a penalty for that format | 23832 | // if there is any input that was not parsed add a penalty for that format |
23778 | currentScore += getParsingFlags(tempConfig).charsLeftOver; | 23833 | currentScore += getParsingFlags(tempConfig).charsLeftOver; |
23779 | 23834 | ||
23780 | //or tokens | 23835 | //or tokens |
23781 | currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; | 23836 | currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; |
23782 | 23837 | ||
23783 | getParsingFlags(tempConfig).score = currentScore; | 23838 | getParsingFlags(tempConfig).score = currentScore; |
23784 | 23839 | ||
23785 | if (scoreToBeat == null || currentScore < scoreToBeat) { | 23840 | if (scoreToBeat == null || currentScore < scoreToBeat) { |
23786 | scoreToBeat = currentScore; | 23841 | scoreToBeat = currentScore; |
23787 | bestMoment = tempConfig; | 23842 | bestMoment = tempConfig; |
23788 | } | ||
23789 | } | 23843 | } |
23790 | |||
23791 | extend(config, bestMoment || tempConfig); | ||
23792 | } | 23844 | } |
23793 | 23845 | ||
23794 | function configFromObject(config) { | 23846 | extend(config, bestMoment || tempConfig); |
23795 | if (config._d) { | 23847 | } |
23796 | return; | ||
23797 | } | ||
23798 | |||
23799 | var i = normalizeObjectUnits(config._i); | ||
23800 | config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { | ||
23801 | return obj && parseInt(obj, 10); | ||
23802 | }); | ||
23803 | 23848 | ||
23804 | configFromArray(config); | 23849 | function configFromObject(config) { |
23850 | if (config._d) { | ||
23851 | return; | ||
23805 | } | 23852 | } |
23806 | 23853 | ||
23807 | function createFromConfig (config) { | 23854 | var i = normalizeObjectUnits(config._i); |
23808 | var res = new Moment(checkOverflow(prepareConfig(config))); | 23855 | config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { |
23809 | if (res._nextDay) { | 23856 | return obj && parseInt(obj, 10); |
23810 | // Adding is smart enough around DST | 23857 | }); |
23811 | res.add(1, 'd'); | ||
23812 | res._nextDay = undefined; | ||
23813 | } | ||
23814 | 23858 | ||
23815 | return res; | 23859 | configFromArray(config); |
23860 | } | ||
23861 | |||
23862 | function createFromConfig (config) { | ||
23863 | var res = new Moment(checkOverflow(prepareConfig(config))); | ||
23864 | if (res._nextDay) { | ||
23865 | // Adding is smart enough around DST | ||
23866 | res.add(1, 'd'); | ||
23867 | res._nextDay = undefined; | ||
23816 | } | 23868 | } |
23817 | 23869 | ||
23818 | function prepareConfig (config) { | 23870 | return res; |
23819 | var input = config._i, | 23871 | } |
23820 | format = config._f; | ||
23821 | 23872 | ||
23822 | config._locale = config._locale || locale_locales__getLocale(config._l); | 23873 | function prepareConfig (config) { |
23874 | var input = config._i, | ||
23875 | format = config._f; | ||
23823 | 23876 | ||
23824 | if (input === null || (format === undefined && input === '')) { | 23877 | config._locale = config._locale || getLocale(config._l); |
23825 | return valid__createInvalid({nullInput: true}); | ||
23826 | } | ||
23827 | 23878 | ||
23828 | if (typeof input === 'string') { | 23879 | if (input === null || (format === undefined && input === '')) { |
23829 | config._i = input = config._locale.preparse(input); | 23880 | return createInvalid({nullInput: true}); |
23830 | } | 23881 | } |
23831 | |||
23832 | if (isMoment(input)) { | ||
23833 | return new Moment(checkOverflow(input)); | ||
23834 | } else if (isArray(format)) { | ||
23835 | configFromStringAndArray(config); | ||
23836 | } else if (isDate(input)) { | ||
23837 | config._d = input; | ||
23838 | } else if (format) { | ||
23839 | configFromStringAndFormat(config); | ||
23840 | } else { | ||
23841 | configFromInput(config); | ||
23842 | } | ||
23843 | 23882 | ||
23844 | if (!valid__isValid(config)) { | 23883 | if (typeof input === 'string') { |
23845 | config._d = null; | 23884 | config._i = input = config._locale.preparse(input); |
23846 | } | 23885 | } |
23847 | 23886 | ||
23848 | return config; | 23887 | if (isMoment(input)) { |
23888 | return new Moment(checkOverflow(input)); | ||
23889 | } else if (isDate(input)) { | ||
23890 | config._d = input; | ||
23891 | } else if (isArray(format)) { | ||
23892 | configFromStringAndArray(config); | ||
23893 | } else if (format) { | ||
23894 | configFromStringAndFormat(config); | ||
23895 | } else { | ||
23896 | configFromInput(config); | ||
23849 | } | 23897 | } |
23850 | 23898 | ||
23851 | function configFromInput(config) { | 23899 | if (!isValid(config)) { |
23852 | var input = config._i; | 23900 | config._d = null; |
23853 | if (input === undefined) { | ||
23854 | config._d = new Date(utils_hooks__hooks.now()); | ||
23855 | } else if (isDate(input)) { | ||
23856 | config._d = new Date(input.valueOf()); | ||
23857 | } else if (typeof input === 'string') { | ||
23858 | configFromString(config); | ||
23859 | } else if (isArray(input)) { | ||
23860 | config._a = map(input.slice(0), function (obj) { | ||
23861 | return parseInt(obj, 10); | ||
23862 | }); | ||
23863 | configFromArray(config); | ||
23864 | } else if (typeof(input) === 'object') { | ||
23865 | configFromObject(config); | ||
23866 | } else if (typeof(input) === 'number') { | ||
23867 | // from milliseconds | ||
23868 | config._d = new Date(input); | ||
23869 | } else { | ||
23870 | utils_hooks__hooks.createFromInputFallback(config); | ||
23871 | } | ||
23872 | } | 23901 | } |
23873 | 23902 | ||
23874 | function createLocalOrUTC (input, format, locale, strict, isUTC) { | 23903 | return config; |
23875 | var c = {}; | 23904 | } |
23876 | 23905 | ||
23877 | if (typeof(locale) === 'boolean') { | 23906 | function configFromInput(config) { |
23878 | strict = locale; | 23907 | var input = config._i; |
23879 | locale = undefined; | 23908 | if (input === undefined) { |
23880 | } | 23909 | config._d = new Date(hooks.now()); |
23910 | } else if (isDate(input)) { | ||
23911 | config._d = new Date(input.valueOf()); | ||
23912 | } else if (typeof input === 'string') { | ||
23913 | configFromString(config); | ||
23914 | } else if (isArray(input)) { | ||
23915 | config._a = map(input.slice(0), function (obj) { | ||
23916 | return parseInt(obj, 10); | ||
23917 | }); | ||
23918 | configFromArray(config); | ||
23919 | } else if (typeof(input) === 'object') { | ||
23920 | configFromObject(config); | ||
23921 | } else if (isNumber(input)) { | ||
23922 | // from milliseconds | ||
23923 | config._d = new Date(input); | ||
23924 | } else { | ||
23925 | hooks.createFromInputFallback(config); | ||
23926 | } | ||
23927 | } | ||
23881 | 23928 | ||
23882 | if ((isObject(input) && isObjectEmpty(input)) || | 23929 | function createLocalOrUTC (input, format, locale, strict, isUTC) { |
23883 | (isArray(input) && input.length === 0)) { | 23930 | var c = {}; |
23884 | input = undefined; | ||
23885 | } | ||
23886 | // object construction must be done this way. | ||
23887 | // https://github.com/moment/moment/issues/1423 | ||
23888 | c._isAMomentObject = true; | ||
23889 | c._useUTC = c._isUTC = isUTC; | ||
23890 | c._l = locale; | ||
23891 | c._i = input; | ||
23892 | c._f = format; | ||
23893 | c._strict = strict; | ||
23894 | 23931 | ||
23895 | return createFromConfig(c); | 23932 | if (locale === true || locale === false) { |
23933 | strict = locale; | ||
23934 | locale = undefined; | ||
23896 | } | 23935 | } |
23897 | 23936 | ||
23898 | function local__createLocal (input, format, locale, strict) { | 23937 | if ((isObject(input) && isObjectEmpty(input)) || |
23899 | return createLocalOrUTC(input, format, locale, strict, false); | 23938 | (isArray(input) && input.length === 0)) { |
23939 | input = undefined; | ||
23900 | } | 23940 | } |
23941 | // object construction must be done this way. | ||
23942 | // https://github.com/moment/moment/issues/1423 | ||
23943 | c._isAMomentObject = true; | ||
23944 | c._useUTC = c._isUTC = isUTC; | ||
23945 | c._l = locale; | ||
23946 | c._i = input; | ||
23947 | c._f = format; | ||
23948 | c._strict = strict; | ||
23901 | 23949 | ||
23902 | var prototypeMin = deprecate( | 23950 | return createFromConfig(c); |
23903 | 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', | 23951 | } |
23904 | function () { | ||
23905 | var other = local__createLocal.apply(null, arguments); | ||
23906 | if (this.isValid() && other.isValid()) { | ||
23907 | return other < this ? this : other; | ||
23908 | } else { | ||
23909 | return valid__createInvalid(); | ||
23910 | } | ||
23911 | } | ||
23912 | ); | ||
23913 | 23952 | ||
23914 | var prototypeMax = deprecate( | 23953 | function createLocal (input, format, locale, strict) { |
23915 | 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', | 23954 | return createLocalOrUTC(input, format, locale, strict, false); |
23916 | function () { | 23955 | } |
23917 | var other = local__createLocal.apply(null, arguments); | ||
23918 | if (this.isValid() && other.isValid()) { | ||
23919 | return other > this ? this : other; | ||
23920 | } else { | ||
23921 | return valid__createInvalid(); | ||
23922 | } | ||
23923 | } | ||
23924 | ); | ||
23925 | 23956 | ||
23926 | // Pick a moment m from moments so that m[fn](other) is true for all | 23957 | var prototypeMin = deprecate( |
23927 | // other. This relies on the function fn to be transitive. | 23958 | 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', |
23928 | // | 23959 | function () { |
23929 | // moments should either be an array of moment objects or an array, whose | 23960 | var other = createLocal.apply(null, arguments); |
23930 | // first element is an array of moment objects. | 23961 | if (this.isValid() && other.isValid()) { |
23931 | function pickBy(fn, moments) { | 23962 | return other < this ? this : other; |
23932 | var res, i; | 23963 | } else { |
23933 | if (moments.length === 1 && isArray(moments[0])) { | 23964 | return createInvalid(); |
23934 | moments = moments[0]; | ||
23935 | } | 23965 | } |
23936 | if (!moments.length) { | 23966 | } |
23937 | return local__createLocal(); | 23967 | ); |
23968 | |||
23969 | var prototypeMax = deprecate( | ||
23970 | 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', | ||
23971 | function () { | ||
23972 | var other = createLocal.apply(null, arguments); | ||
23973 | if (this.isValid() && other.isValid()) { | ||
23974 | return other > this ? this : other; | ||
23975 | } else { | ||
23976 | return createInvalid(); | ||
23938 | } | 23977 | } |
23939 | res = moments[0]; | 23978 | } |
23940 | for (i = 1; i < moments.length; ++i) { | 23979 | ); |
23941 | if (!moments[i].isValid() || moments[i][fn](res)) { | 23980 | |
23942 | res = moments[i]; | 23981 | // Pick a moment m from moments so that m[fn](other) is true for all |
23943 | } | 23982 | // other. This relies on the function fn to be transitive. |
23983 | // | ||
23984 | // moments should either be an array of moment objects or an array, whose | ||
23985 | // first element is an array of moment objects. | ||
23986 | function pickBy(fn, moments) { | ||
23987 | var res, i; | ||
23988 | if (moments.length === 1 && isArray(moments[0])) { | ||
23989 | moments = moments[0]; | ||
23990 | } | ||
23991 | if (!moments.length) { | ||
23992 | return createLocal(); | ||
23993 | } | ||
23994 | res = moments[0]; | ||
23995 | for (i = 1; i < moments.length; ++i) { | ||
23996 | if (!moments[i].isValid() || moments[i][fn](res)) { | ||
23997 | res = moments[i]; | ||
23944 | } | 23998 | } |
23945 | return res; | ||
23946 | } | 23999 | } |
24000 | return res; | ||
24001 | } | ||
23947 | 24002 | ||
23948 | // TODO: Use [].sort instead? | 24003 | // TODO: Use [].sort instead? |
23949 | function min () { | 24004 | function min () { |
23950 | var args = [].slice.call(arguments, 0); | 24005 | var args = [].slice.call(arguments, 0); |
23951 | 24006 | ||
23952 | return pickBy('isBefore', args); | 24007 | return pickBy('isBefore', args); |
23953 | } | 24008 | } |
23954 | 24009 | ||
23955 | function max () { | 24010 | function max () { |
23956 | var args = [].slice.call(arguments, 0); | 24011 | var args = [].slice.call(arguments, 0); |
23957 | 24012 | ||
23958 | return pickBy('isAfter', args); | 24013 | return pickBy('isAfter', args); |
23959 | } | 24014 | } |
23960 | 24015 | ||
23961 | var now = function () { | 24016 | var now = function () { |
23962 | return Date.now ? Date.now() : +(new Date()); | 24017 | return Date.now ? Date.now() : +(new Date()); |
23963 | }; | 24018 | }; |
23964 | 24019 | ||
23965 | function Duration (duration) { | 24020 | function Duration (duration) { |
23966 | var normalizedInput = normalizeObjectUnits(duration), | 24021 | var normalizedInput = normalizeObjectUnits(duration), |
23967 | years = normalizedInput.year || 0, | 24022 | years = normalizedInput.year || 0, |
23968 | quarters = normalizedInput.quarter || 0, | 24023 | quarters = normalizedInput.quarter || 0, |
23969 | months = normalizedInput.month || 0, | 24024 | months = normalizedInput.month || 0, |
23970 | weeks = normalizedInput.week || 0, | 24025 | weeks = normalizedInput.week || 0, |
23971 | days = normalizedInput.day || 0, | 24026 | days = normalizedInput.day || 0, |
23972 | hours = normalizedInput.hour || 0, | 24027 | hours = normalizedInput.hour || 0, |
23973 | minutes = normalizedInput.minute || 0, | 24028 | minutes = normalizedInput.minute || 0, |
23974 | seconds = normalizedInput.second || 0, | 24029 | seconds = normalizedInput.second || 0, |
23975 | milliseconds = normalizedInput.millisecond || 0; | 24030 | milliseconds = normalizedInput.millisecond || 0; |
23976 | 24031 | ||
23977 | // representation for dateAddRemove | 24032 | // representation for dateAddRemove |
23978 | this._milliseconds = +milliseconds + | 24033 | this._milliseconds = +milliseconds + |
23979 | seconds * 1e3 + // 1000 | 24034 | seconds * 1e3 + // 1000 |
23980 | minutes * 6e4 + // 1000 * 60 | 24035 | minutes * 6e4 + // 1000 * 60 |
23981 | hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 | 24036 | hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 |
23982 | // Because of dateAddRemove treats 24 hours as different from a | 24037 | // Because of dateAddRemove treats 24 hours as different from a |
23983 | // day when working around DST, we need to store them separately | 24038 | // day when working around DST, we need to store them separately |
23984 | this._days = +days + | 24039 | this._days = +days + |
23985 | weeks * 7; | 24040 | weeks * 7; |
23986 | // It is impossible translate months into days without knowing | 24041 | // It is impossible translate months into days without knowing |
23987 | // which months you are are talking about, so we have to store | 24042 | // which months you are are talking about, so we have to store |
23988 | // it separately. | 24043 | // it separately. |
23989 | this._months = +months + | 24044 | this._months = +months + |
23990 | quarters * 3 + | 24045 | quarters * 3 + |
23991 | years * 12; | 24046 | years * 12; |
23992 | 24047 | ||
23993 | this._data = {}; | 24048 | this._data = {}; |
23994 | 24049 | ||
23995 | this._locale = locale_locales__getLocale(); | 24050 | this._locale = getLocale(); |
23996 | 24051 | ||
23997 | this._bubble(); | 24052 | this._bubble(); |
23998 | } | 24053 | } |
23999 | 24054 | ||
24000 | function isDuration (obj) { | 24055 | function isDuration (obj) { |
24001 | return obj instanceof Duration; | 24056 | return obj instanceof Duration; |
24002 | } | 24057 | } |
24003 | 24058 | ||
24004 | // FORMATTING | 24059 | function absRound (number) { |
24005 | 24060 | if (number < 0) { | |
24006 | function offset (token, separator) { | 24061 | return Math.round(-1 * number) * -1; |
24007 | addFormatToken(token, 0, 0, function () { | 24062 | } else { |
24008 | var offset = this.utcOffset(); | 24063 | return Math.round(number); |
24009 | var sign = '+'; | ||
24010 | if (offset < 0) { | ||
24011 | offset = -offset; | ||
24012 | sign = '-'; | ||
24013 | } | ||
24014 | return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); | ||
24015 | }); | ||
24016 | } | 24064 | } |
24065 | } | ||
24017 | 24066 | ||
24018 | offset('Z', ':'); | 24067 | // FORMATTING |
24019 | offset('ZZ', ''); | ||
24020 | |||
24021 | // PARSING | ||
24022 | 24068 | ||
24023 | addRegexToken('Z', matchShortOffset); | 24069 | function offset (token, separator) { |
24024 | addRegexToken('ZZ', matchShortOffset); | 24070 | addFormatToken(token, 0, 0, function () { |
24025 | addParseToken(['Z', 'ZZ'], function (input, array, config) { | 24071 | var offset = this.utcOffset(); |
24026 | config._useUTC = true; | 24072 | var sign = '+'; |
24027 | config._tzm = offsetFromString(matchShortOffset, input); | 24073 | if (offset < 0) { |
24074 | offset = -offset; | ||
24075 | sign = '-'; | ||
24076 | } | ||
24077 | return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); | ||
24028 | }); | 24078 | }); |
24079 | } | ||
24029 | 24080 | ||
24030 | // HELPERS | 24081 | offset('Z', ':'); |
24082 | offset('ZZ', ''); | ||
24031 | 24083 | ||
24032 | // timezone chunker | 24084 | // PARSING |
24033 | // '+10:00' > ['10', '00'] | ||
24034 | // '-1530' > ['-15', '30'] | ||
24035 | var chunkOffset = /([\+\-]|\d\d)/gi; | ||
24036 | 24085 | ||
24037 | function offsetFromString(matcher, string) { | 24086 | addRegexToken('Z', matchShortOffset); |
24038 | var matches = ((string || '').match(matcher) || []); | 24087 | addRegexToken('ZZ', matchShortOffset); |
24039 | var chunk = matches[matches.length - 1] || []; | 24088 | addParseToken(['Z', 'ZZ'], function (input, array, config) { |
24040 | var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; | 24089 | config._useUTC = true; |
24041 | var minutes = +(parts[1] * 60) + toInt(parts[2]); | 24090 | config._tzm = offsetFromString(matchShortOffset, input); |
24091 | }); | ||
24042 | 24092 | ||
24043 | return parts[0] === '+' ? minutes : -minutes; | 24093 | // HELPERS |
24044 | } | ||
24045 | 24094 | ||
24046 | // Return a moment from input, that is local/utc/zone equivalent to model. | 24095 | // timezone chunker |
24047 | function cloneWithOffset(input, model) { | 24096 | // '+10:00' > ['10', '00'] |
24048 | var res, diff; | 24097 | // '-1530' > ['-15', '30'] |
24049 | if (model._isUTC) { | 24098 | var chunkOffset = /([\+\-]|\d\d)/gi; |
24050 | res = model.clone(); | ||
24051 | diff = (isMoment(input) || isDate(input) ? input.valueOf() : local__createLocal(input).valueOf()) - res.valueOf(); | ||
24052 | // Use low-level api, because this fn is low-level api. | ||
24053 | res._d.setTime(res._d.valueOf() + diff); | ||
24054 | utils_hooks__hooks.updateOffset(res, false); | ||
24055 | return res; | ||
24056 | } else { | ||
24057 | return local__createLocal(input).local(); | ||
24058 | } | ||
24059 | } | ||
24060 | 24099 | ||
24061 | function getDateOffset (m) { | 24100 | function offsetFromString(matcher, string) { |
24062 | // On Firefox.24 Date#getTimezoneOffset returns a floating point. | 24101 | var matches = (string || '').match(matcher); |
24063 | // https://github.com/moment/moment/pull/1871 | ||
24064 | return -Math.round(m._d.getTimezoneOffset() / 15) * 15; | ||
24065 | } | ||
24066 | 24102 | ||
24067 | // HOOKS | 24103 | if (matches === null) { |
24104 | return null; | ||
24105 | } | ||
24068 | 24106 | ||
24069 | // This function will be called whenever a moment is mutated. | 24107 | var chunk = matches[matches.length - 1] || []; |
24070 | // It is intended to keep the offset in sync with the timezone. | 24108 | var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; |
24071 | utils_hooks__hooks.updateOffset = function () {}; | 24109 | var minutes = +(parts[1] * 60) + toInt(parts[2]); |
24072 | 24110 | ||
24073 | // MOMENTS | 24111 | return minutes === 0 ? |
24112 | 0 : | ||
24113 | parts[0] === '+' ? minutes : -minutes; | ||
24114 | } | ||
24074 | 24115 | ||
24075 | // keepLocalTime = true means only change the timezone, without | 24116 | // Return a moment from input, that is local/utc/zone equivalent to model. |
24076 | // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> | 24117 | function cloneWithOffset(input, model) { |
24077 | // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset | 24118 | var res, diff; |
24078 | // +0200, so we adjust the time as needed, to be valid. | 24119 | if (model._isUTC) { |
24079 | // | 24120 | res = model.clone(); |
24080 | // Keeping the time actually adds/subtracts (one hour) | 24121 | diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); |
24081 | // from the actual represented time. That is why we call updateOffset | 24122 | // Use low-level api, because this fn is low-level api. |
24082 | // a second time. In case it wants us to change the offset again | 24123 | res._d.setTime(res._d.valueOf() + diff); |
24083 | // _changeInProgress == true case, then we have to adjust, because | 24124 | hooks.updateOffset(res, false); |
24084 | // there is no such time in the given timezone. | 24125 | return res; |
24085 | function getSetOffset (input, keepLocalTime) { | 24126 | } else { |
24086 | var offset = this._offset || 0, | 24127 | return createLocal(input).local(); |
24087 | localAdjust; | ||
24088 | if (!this.isValid()) { | ||
24089 | return input != null ? this : NaN; | ||
24090 | } | ||
24091 | if (input != null) { | ||
24092 | if (typeof input === 'string') { | ||
24093 | input = offsetFromString(matchShortOffset, input); | ||
24094 | } else if (Math.abs(input) < 16) { | ||
24095 | input = input * 60; | ||
24096 | } | ||
24097 | if (!this._isUTC && keepLocalTime) { | ||
24098 | localAdjust = getDateOffset(this); | ||
24099 | } | ||
24100 | this._offset = input; | ||
24101 | this._isUTC = true; | ||
24102 | if (localAdjust != null) { | ||
24103 | this.add(localAdjust, 'm'); | ||
24104 | } | ||
24105 | if (offset !== input) { | ||
24106 | if (!keepLocalTime || this._changeInProgress) { | ||
24107 | add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); | ||
24108 | } else if (!this._changeInProgress) { | ||
24109 | this._changeInProgress = true; | ||
24110 | utils_hooks__hooks.updateOffset(this, true); | ||
24111 | this._changeInProgress = null; | ||
24112 | } | ||
24113 | } | ||
24114 | return this; | ||
24115 | } else { | ||
24116 | return this._isUTC ? offset : getDateOffset(this); | ||
24117 | } | ||
24118 | } | 24128 | } |
24129 | } | ||
24119 | 24130 | ||
24120 | function getSetZone (input, keepLocalTime) { | 24131 | function getDateOffset (m) { |
24121 | if (input != null) { | 24132 | // On Firefox.24 Date#getTimezoneOffset returns a floating point. |
24122 | if (typeof input !== 'string') { | 24133 | // https://github.com/moment/moment/pull/1871 |
24123 | input = -input; | 24134 | return -Math.round(m._d.getTimezoneOffset() / 15) * 15; |
24124 | } | 24135 | } |
24125 | |||
24126 | this.utcOffset(input, keepLocalTime); | ||
24127 | 24136 | ||
24128 | return this; | 24137 | // HOOKS |
24129 | } else { | ||
24130 | return -this.utcOffset(); | ||
24131 | } | ||
24132 | } | ||
24133 | 24138 | ||
24134 | function setOffsetToUTC (keepLocalTime) { | 24139 | // This function will be called whenever a moment is mutated. |
24135 | return this.utcOffset(0, keepLocalTime); | 24140 | // It is intended to keep the offset in sync with the timezone. |
24136 | } | 24141 | hooks.updateOffset = function () {}; |
24137 | 24142 | ||
24138 | function setOffsetToLocal (keepLocalTime) { | 24143 | // MOMENTS |
24139 | if (this._isUTC) { | ||
24140 | this.utcOffset(0, keepLocalTime); | ||
24141 | this._isUTC = false; | ||
24142 | 24144 | ||
24143 | if (keepLocalTime) { | 24145 | // keepLocalTime = true means only change the timezone, without |
24144 | this.subtract(getDateOffset(this), 'm'); | 24146 | // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> |
24147 | // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset | ||
24148 | // +0200, so we adjust the time as needed, to be valid. | ||
24149 | // | ||
24150 | // Keeping the time actually adds/subtracts (one hour) | ||
24151 | // from the actual represented time. That is why we call updateOffset | ||
24152 | // a second time. In case it wants us to change the offset again | ||
24153 | // _changeInProgress == true case, then we have to adjust, because | ||
24154 | // there is no such time in the given timezone. | ||
24155 | function getSetOffset (input, keepLocalTime) { | ||
24156 | var offset = this._offset || 0, | ||
24157 | localAdjust; | ||
24158 | if (!this.isValid()) { | ||
24159 | return input != null ? this : NaN; | ||
24160 | } | ||
24161 | if (input != null) { | ||
24162 | if (typeof input === 'string') { | ||
24163 | input = offsetFromString(matchShortOffset, input); | ||
24164 | if (input === null) { | ||
24165 | return this; | ||
24166 | } | ||
24167 | } else if (Math.abs(input) < 16) { | ||
24168 | input = input * 60; | ||
24169 | } | ||
24170 | if (!this._isUTC && keepLocalTime) { | ||
24171 | localAdjust = getDateOffset(this); | ||
24172 | } | ||
24173 | this._offset = input; | ||
24174 | this._isUTC = true; | ||
24175 | if (localAdjust != null) { | ||
24176 | this.add(localAdjust, 'm'); | ||
24177 | } | ||
24178 | if (offset !== input) { | ||
24179 | if (!keepLocalTime || this._changeInProgress) { | ||
24180 | addSubtract(this, createDuration(input - offset, 'm'), 1, false); | ||
24181 | } else if (!this._changeInProgress) { | ||
24182 | this._changeInProgress = true; | ||
24183 | hooks.updateOffset(this, true); | ||
24184 | this._changeInProgress = null; | ||
24145 | } | 24185 | } |
24146 | } | 24186 | } |
24147 | return this; | 24187 | return this; |
24188 | } else { | ||
24189 | return this._isUTC ? offset : getDateOffset(this); | ||
24148 | } | 24190 | } |
24191 | } | ||
24149 | 24192 | ||
24150 | function setOffsetToParsedOffset () { | 24193 | function getSetZone (input, keepLocalTime) { |
24151 | if (this._tzm) { | 24194 | if (input != null) { |
24152 | this.utcOffset(this._tzm); | 24195 | if (typeof input !== 'string') { |
24153 | } else if (typeof this._i === 'string') { | 24196 | input = -input; |
24154 | this.utcOffset(offsetFromString(matchOffset, this._i)); | ||
24155 | } | 24197 | } |
24198 | |||
24199 | this.utcOffset(input, keepLocalTime); | ||
24200 | |||
24156 | return this; | 24201 | return this; |
24202 | } else { | ||
24203 | return -this.utcOffset(); | ||
24157 | } | 24204 | } |
24205 | } | ||
24158 | 24206 | ||
24159 | function hasAlignedHourOffset (input) { | 24207 | function setOffsetToUTC (keepLocalTime) { |
24160 | if (!this.isValid()) { | 24208 | return this.utcOffset(0, keepLocalTime); |
24161 | return false; | 24209 | } |
24162 | } | ||
24163 | input = input ? local__createLocal(input).utcOffset() : 0; | ||
24164 | 24210 | ||
24165 | return (this.utcOffset() - input) % 60 === 0; | 24211 | function setOffsetToLocal (keepLocalTime) { |
24166 | } | 24212 | if (this._isUTC) { |
24213 | this.utcOffset(0, keepLocalTime); | ||
24214 | this._isUTC = false; | ||
24167 | 24215 | ||
24168 | function isDaylightSavingTime () { | 24216 | if (keepLocalTime) { |
24169 | return ( | 24217 | this.subtract(getDateOffset(this), 'm'); |
24170 | this.utcOffset() > this.clone().month(0).utcOffset() || | 24218 | } |
24171 | this.utcOffset() > this.clone().month(5).utcOffset() | ||
24172 | ); | ||
24173 | } | 24219 | } |
24220 | return this; | ||
24221 | } | ||
24174 | 24222 | ||
24175 | function isDaylightSavingTimeShifted () { | 24223 | function setOffsetToParsedOffset () { |
24176 | if (!isUndefined(this._isDSTShifted)) { | 24224 | if (this._tzm != null) { |
24177 | return this._isDSTShifted; | 24225 | this.utcOffset(this._tzm); |
24226 | } else if (typeof this._i === 'string') { | ||
24227 | var tZone = offsetFromString(matchOffset, this._i); | ||
24228 | if (tZone != null) { | ||
24229 | this.utcOffset(tZone); | ||
24230 | } | ||
24231 | else { | ||
24232 | this.utcOffset(0, true); | ||
24178 | } | 24233 | } |
24234 | } | ||
24235 | return this; | ||
24236 | } | ||
24179 | 24237 | ||
24180 | var c = {}; | 24238 | function hasAlignedHourOffset (input) { |
24239 | if (!this.isValid()) { | ||
24240 | return false; | ||
24241 | } | ||
24242 | input = input ? createLocal(input).utcOffset() : 0; | ||
24181 | 24243 | ||
24182 | copyConfig(c, this); | 24244 | return (this.utcOffset() - input) % 60 === 0; |
24183 | c = prepareConfig(c); | 24245 | } |
24184 | 24246 | ||
24185 | if (c._a) { | 24247 | function isDaylightSavingTime () { |
24186 | var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); | 24248 | return ( |
24187 | this._isDSTShifted = this.isValid() && | 24249 | this.utcOffset() > this.clone().month(0).utcOffset() || |
24188 | compareArrays(c._a, other.toArray()) > 0; | 24250 | this.utcOffset() > this.clone().month(5).utcOffset() |
24189 | } else { | 24251 | ); |
24190 | this._isDSTShifted = false; | 24252 | } |
24191 | } | ||
24192 | 24253 | ||
24254 | function isDaylightSavingTimeShifted () { | ||
24255 | if (!isUndefined(this._isDSTShifted)) { | ||
24193 | return this._isDSTShifted; | 24256 | return this._isDSTShifted; |
24194 | } | 24257 | } |
24195 | 24258 | ||
24196 | function isLocal () { | 24259 | var c = {}; |
24197 | return this.isValid() ? !this._isUTC : false; | ||
24198 | } | ||
24199 | 24260 | ||
24200 | function isUtcOffset () { | 24261 | copyConfig(c, this); |
24201 | return this.isValid() ? this._isUTC : false; | 24262 | c = prepareConfig(c); |
24202 | } | ||
24203 | 24263 | ||
24204 | function isUtc () { | 24264 | if (c._a) { |
24205 | return this.isValid() ? this._isUTC && this._offset === 0 : false; | 24265 | var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); |
24266 | this._isDSTShifted = this.isValid() && | ||
24267 | compareArrays(c._a, other.toArray()) > 0; | ||
24268 | } else { | ||
24269 | this._isDSTShifted = false; | ||
24206 | } | 24270 | } |
24207 | 24271 | ||
24208 | // ASP.NET json date format regex | 24272 | return this._isDSTShifted; |
24209 | var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/; | 24273 | } |
24210 | 24274 | ||
24211 | // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html | 24275 | function isLocal () { |
24212 | // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere | 24276 | return this.isValid() ? !this._isUTC : false; |
24213 | // and further modified to allow for strings containing both week and day | 24277 | } |
24214 | var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; | ||
24215 | 24278 | ||
24216 | function create__createDuration (input, key) { | 24279 | function isUtcOffset () { |
24217 | var duration = input, | 24280 | return this.isValid() ? this._isUTC : false; |
24218 | // matching against regexp is expensive, do it on demand | 24281 | } |
24219 | match = null, | ||
24220 | sign, | ||
24221 | ret, | ||
24222 | diffRes; | ||
24223 | 24282 | ||
24224 | if (isDuration(input)) { | 24283 | function isUtc () { |
24225 | duration = { | 24284 | return this.isValid() ? this._isUTC && this._offset === 0 : false; |
24226 | ms : input._milliseconds, | 24285 | } |
24227 | d : input._days, | ||
24228 | M : input._months | ||
24229 | }; | ||
24230 | } else if (typeof input === 'number') { | ||
24231 | duration = {}; | ||
24232 | if (key) { | ||
24233 | duration[key] = input; | ||
24234 | } else { | ||
24235 | duration.milliseconds = input; | ||
24236 | } | ||
24237 | } else if (!!(match = aspNetRegex.exec(input))) { | ||
24238 | sign = (match[1] === '-') ? -1 : 1; | ||
24239 | duration = { | ||
24240 | y : 0, | ||
24241 | d : toInt(match[DATE]) * sign, | ||
24242 | h : toInt(match[HOUR]) * sign, | ||
24243 | m : toInt(match[MINUTE]) * sign, | ||
24244 | s : toInt(match[SECOND]) * sign, | ||
24245 | ms : toInt(match[MILLISECOND]) * sign | ||
24246 | }; | ||
24247 | } else if (!!(match = isoRegex.exec(input))) { | ||
24248 | sign = (match[1] === '-') ? -1 : 1; | ||
24249 | duration = { | ||
24250 | y : parseIso(match[2], sign), | ||
24251 | M : parseIso(match[3], sign), | ||
24252 | w : parseIso(match[4], sign), | ||
24253 | d : parseIso(match[5], sign), | ||
24254 | h : parseIso(match[6], sign), | ||
24255 | m : parseIso(match[7], sign), | ||
24256 | s : parseIso(match[8], sign) | ||
24257 | }; | ||
24258 | } else if (duration == null) {// checks for null or undefined | ||
24259 | duration = {}; | ||
24260 | } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { | ||
24261 | diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); | ||
24262 | |||
24263 | duration = {}; | ||
24264 | duration.ms = diffRes.milliseconds; | ||
24265 | duration.M = diffRes.months; | ||
24266 | } | ||
24267 | 24286 | ||
24268 | ret = new Duration(duration); | 24287 | // ASP.NET json date format regex |
24288 | var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; | ||
24269 | 24289 | ||
24270 | if (isDuration(input) && hasOwnProp(input, '_locale')) { | 24290 | // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html |
24271 | ret._locale = input._locale; | 24291 | // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere |
24272 | } | 24292 | // and further modified to allow for strings containing both week and day |
24293 | var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; | ||
24273 | 24294 | ||
24274 | return ret; | 24295 | function createDuration (input, key) { |
24275 | } | 24296 | var duration = input, |
24297 | // matching against regexp is expensive, do it on demand | ||
24298 | match = null, | ||
24299 | sign, | ||
24300 | ret, | ||
24301 | diffRes; | ||
24276 | 24302 | ||
24277 | create__createDuration.fn = Duration.prototype; | 24303 | if (isDuration(input)) { |
24304 | duration = { | ||
24305 | ms : input._milliseconds, | ||
24306 | d : input._days, | ||
24307 | M : input._months | ||
24308 | }; | ||
24309 | } else if (isNumber(input)) { | ||
24310 | duration = {}; | ||
24311 | if (key) { | ||
24312 | duration[key] = input; | ||
24313 | } else { | ||
24314 | duration.milliseconds = input; | ||
24315 | } | ||
24316 | } else if (!!(match = aspNetRegex.exec(input))) { | ||
24317 | sign = (match[1] === '-') ? -1 : 1; | ||
24318 | duration = { | ||
24319 | y : 0, | ||
24320 | d : toInt(match[DATE]) * sign, | ||
24321 | h : toInt(match[HOUR]) * sign, | ||
24322 | m : toInt(match[MINUTE]) * sign, | ||
24323 | s : toInt(match[SECOND]) * sign, | ||
24324 | ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match | ||
24325 | }; | ||
24326 | } else if (!!(match = isoRegex.exec(input))) { | ||
24327 | sign = (match[1] === '-') ? -1 : 1; | ||
24328 | duration = { | ||
24329 | y : parseIso(match[2], sign), | ||
24330 | M : parseIso(match[3], sign), | ||
24331 | w : parseIso(match[4], sign), | ||
24332 | d : parseIso(match[5], sign), | ||
24333 | h : parseIso(match[6], sign), | ||
24334 | m : parseIso(match[7], sign), | ||
24335 | s : parseIso(match[8], sign) | ||
24336 | }; | ||
24337 | } else if (duration == null) {// checks for null or undefined | ||
24338 | duration = {}; | ||
24339 | } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { | ||
24340 | diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); | ||
24278 | 24341 | ||
24279 | function parseIso (inp, sign) { | 24342 | duration = {}; |
24280 | // We'd normally use ~~inp for this, but unfortunately it also | 24343 | duration.ms = diffRes.milliseconds; |
24281 | // converts floats to ints. | 24344 | duration.M = diffRes.months; |
24282 | // inp may be undefined, so careful calling replace on it. | ||
24283 | var res = inp && parseFloat(inp.replace(',', '.')); | ||
24284 | // apply sign while we're at it | ||
24285 | return (isNaN(res) ? 0 : res) * sign; | ||
24286 | } | 24345 | } |
24287 | 24346 | ||
24288 | function positiveMomentsDifference(base, other) { | 24347 | ret = new Duration(duration); |
24289 | var res = {milliseconds: 0, months: 0}; | ||
24290 | 24348 | ||
24291 | res.months = other.month() - base.month() + | 24349 | if (isDuration(input) && hasOwnProp(input, '_locale')) { |
24292 | (other.year() - base.year()) * 12; | 24350 | ret._locale = input._locale; |
24293 | if (base.clone().add(res.months, 'M').isAfter(other)) { | 24351 | } |
24294 | --res.months; | ||
24295 | } | ||
24296 | 24352 | ||
24297 | res.milliseconds = +other - +(base.clone().add(res.months, 'M')); | 24353 | return ret; |
24354 | } | ||
24298 | 24355 | ||
24299 | return res; | 24356 | createDuration.fn = Duration.prototype; |
24300 | } | ||
24301 | 24357 | ||
24302 | function momentsDifference(base, other) { | 24358 | function parseIso (inp, sign) { |
24303 | var res; | 24359 | // We'd normally use ~~inp for this, but unfortunately it also |
24304 | if (!(base.isValid() && other.isValid())) { | 24360 | // converts floats to ints. |
24305 | return {milliseconds: 0, months: 0}; | 24361 | // inp may be undefined, so careful calling replace on it. |
24306 | } | 24362 | var res = inp && parseFloat(inp.replace(',', '.')); |
24363 | // apply sign while we're at it | ||
24364 | return (isNaN(res) ? 0 : res) * sign; | ||
24365 | } | ||
24307 | 24366 | ||
24308 | other = cloneWithOffset(other, base); | 24367 | function positiveMomentsDifference(base, other) { |
24309 | if (base.isBefore(other)) { | 24368 | var res = {milliseconds: 0, months: 0}; |
24310 | res = positiveMomentsDifference(base, other); | ||
24311 | } else { | ||
24312 | res = positiveMomentsDifference(other, base); | ||
24313 | res.milliseconds = -res.milliseconds; | ||
24314 | res.months = -res.months; | ||
24315 | } | ||
24316 | 24369 | ||
24317 | return res; | 24370 | res.months = other.month() - base.month() + |
24371 | (other.year() - base.year()) * 12; | ||
24372 | if (base.clone().add(res.months, 'M').isAfter(other)) { | ||
24373 | --res.months; | ||
24318 | } | 24374 | } |
24319 | 24375 | ||
24320 | function absRound (number) { | 24376 | res.milliseconds = +other - +(base.clone().add(res.months, 'M')); |
24321 | if (number < 0) { | ||
24322 | return Math.round(-1 * number) * -1; | ||
24323 | } else { | ||
24324 | return Math.round(number); | ||
24325 | } | ||
24326 | } | ||
24327 | 24377 | ||
24328 | // TODO: remove 'name' arg after deprecation is removed | 24378 | return res; |
24329 | function createAdder(direction, name) { | 24379 | } |
24330 | return function (val, period) { | ||
24331 | var dur, tmp; | ||
24332 | //invert the arguments, but complain about it | ||
24333 | if (period !== null && !isNaN(+period)) { | ||
24334 | deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + | ||
24335 | 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); | ||
24336 | tmp = val; val = period; period = tmp; | ||
24337 | } | ||
24338 | 24380 | ||
24339 | val = typeof val === 'string' ? +val : val; | 24381 | function momentsDifference(base, other) { |
24340 | dur = create__createDuration(val, period); | 24382 | var res; |
24341 | add_subtract__addSubtract(this, dur, direction); | 24383 | if (!(base.isValid() && other.isValid())) { |
24342 | return this; | 24384 | return {milliseconds: 0, months: 0}; |
24343 | }; | ||
24344 | } | 24385 | } |
24345 | 24386 | ||
24346 | function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { | 24387 | other = cloneWithOffset(other, base); |
24347 | var milliseconds = duration._milliseconds, | 24388 | if (base.isBefore(other)) { |
24348 | days = absRound(duration._days), | 24389 | res = positiveMomentsDifference(base, other); |
24349 | months = absRound(duration._months); | 24390 | } else { |
24391 | res = positiveMomentsDifference(other, base); | ||
24392 | res.milliseconds = -res.milliseconds; | ||
24393 | res.months = -res.months; | ||
24394 | } | ||
24350 | 24395 | ||
24351 | if (!mom.isValid()) { | 24396 | return res; |
24352 | // No op | 24397 | } |
24353 | return; | 24398 | |
24399 | // TODO: remove 'name' arg after deprecation is removed | ||
24400 | function createAdder(direction, name) { | ||
24401 | return function (val, period) { | ||
24402 | var dur, tmp; | ||
24403 | //invert the arguments, but complain about it | ||
24404 | if (period !== null && !isNaN(+period)) { | ||
24405 | deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + | ||
24406 | 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); | ||
24407 | tmp = val; val = period; period = tmp; | ||
24354 | } | 24408 | } |
24355 | 24409 | ||
24356 | updateOffset = updateOffset == null ? true : updateOffset; | 24410 | val = typeof val === 'string' ? +val : val; |
24411 | dur = createDuration(val, period); | ||
24412 | addSubtract(this, dur, direction); | ||
24413 | return this; | ||
24414 | }; | ||
24415 | } | ||
24357 | 24416 | ||
24358 | if (milliseconds) { | 24417 | function addSubtract (mom, duration, isAdding, updateOffset) { |
24359 | mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); | 24418 | var milliseconds = duration._milliseconds, |
24360 | } | 24419 | days = absRound(duration._days), |
24361 | if (days) { | 24420 | months = absRound(duration._months); |
24362 | get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); | 24421 | |
24363 | } | 24422 | if (!mom.isValid()) { |
24364 | if (months) { | 24423 | // No op |
24365 | setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); | 24424 | return; |
24366 | } | ||
24367 | if (updateOffset) { | ||
24368 | utils_hooks__hooks.updateOffset(mom, days || months); | ||
24369 | } | ||
24370 | } | 24425 | } |
24371 | 24426 | ||
24372 | var add_subtract__add = createAdder(1, 'add'); | 24427 | updateOffset = updateOffset == null ? true : updateOffset; |
24373 | var add_subtract__subtract = createAdder(-1, 'subtract'); | ||
24374 | 24428 | ||
24375 | function getCalendarFormat(myMoment, now) { | 24429 | if (milliseconds) { |
24376 | var diff = myMoment.diff(now, 'days', true); | 24430 | mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); |
24377 | return diff < -6 ? 'sameElse' : | 24431 | } |
24378 | diff < -1 ? 'lastWeek' : | 24432 | if (days) { |
24379 | diff < 0 ? 'lastDay' : | 24433 | set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); |
24380 | diff < 1 ? 'sameDay' : | ||
24381 | diff < 2 ? 'nextDay' : | ||
24382 | diff < 7 ? 'nextWeek' : 'sameElse'; | ||
24383 | } | 24434 | } |
24435 | if (months) { | ||
24436 | setMonth(mom, get(mom, 'Month') + months * isAdding); | ||
24437 | } | ||
24438 | if (updateOffset) { | ||
24439 | hooks.updateOffset(mom, days || months); | ||
24440 | } | ||
24441 | } | ||
24384 | 24442 | ||
24385 | function moment_calendar__calendar (time, formats) { | 24443 | var add = createAdder(1, 'add'); |
24386 | // We want to compare the start of today, vs this. | 24444 | var subtract = createAdder(-1, 'subtract'); |
24387 | // Getting start-of-today depends on whether we're local/utc/offset or not. | ||
24388 | var now = time || local__createLocal(), | ||
24389 | sod = cloneWithOffset(now, this).startOf('day'), | ||
24390 | format = utils_hooks__hooks.calendarFormat(this, sod) || 'sameElse'; | ||
24391 | 24445 | ||
24392 | var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); | 24446 | function getCalendarFormat(myMoment, now) { |
24447 | var diff = myMoment.diff(now, 'days', true); | ||
24448 | return diff < -6 ? 'sameElse' : | ||
24449 | diff < -1 ? 'lastWeek' : | ||
24450 | diff < 0 ? 'lastDay' : | ||
24451 | diff < 1 ? 'sameDay' : | ||
24452 | diff < 2 ? 'nextDay' : | ||
24453 | diff < 7 ? 'nextWeek' : 'sameElse'; | ||
24454 | } | ||
24393 | 24455 | ||
24394 | return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); | 24456 | function calendar$1 (time, formats) { |
24395 | } | 24457 | // We want to compare the start of today, vs this. |
24458 | // Getting start-of-today depends on whether we're local/utc/offset or not. | ||
24459 | var now = time || createLocal(), | ||
24460 | sod = cloneWithOffset(now, this).startOf('day'), | ||
24461 | format = hooks.calendarFormat(this, sod) || 'sameElse'; | ||
24396 | 24462 | ||
24397 | function clone () { | 24463 | var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); |
24398 | return new Moment(this); | ||
24399 | } | ||
24400 | 24464 | ||
24401 | function isAfter (input, units) { | 24465 | return this.format(output || this.localeData().calendar(format, this, createLocal(now))); |
24402 | var localInput = isMoment(input) ? input : local__createLocal(input); | 24466 | } |
24403 | if (!(this.isValid() && localInput.isValid())) { | ||
24404 | return false; | ||
24405 | } | ||
24406 | units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); | ||
24407 | if (units === 'millisecond') { | ||
24408 | return this.valueOf() > localInput.valueOf(); | ||
24409 | } else { | ||
24410 | return localInput.valueOf() < this.clone().startOf(units).valueOf(); | ||
24411 | } | ||
24412 | } | ||
24413 | 24467 | ||
24414 | function isBefore (input, units) { | 24468 | function clone () { |
24415 | var localInput = isMoment(input) ? input : local__createLocal(input); | 24469 | return new Moment(this); |
24416 | if (!(this.isValid() && localInput.isValid())) { | 24470 | } |
24417 | return false; | ||
24418 | } | ||
24419 | units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); | ||
24420 | if (units === 'millisecond') { | ||
24421 | return this.valueOf() < localInput.valueOf(); | ||
24422 | } else { | ||
24423 | return this.clone().endOf(units).valueOf() < localInput.valueOf(); | ||
24424 | } | ||
24425 | } | ||
24426 | 24471 | ||
24427 | function isBetween (from, to, units, inclusivity) { | 24472 | function isAfter (input, units) { |
24428 | inclusivity = inclusivity || '()'; | 24473 | var localInput = isMoment(input) ? input : createLocal(input); |
24429 | return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && | 24474 | if (!(this.isValid() && localInput.isValid())) { |
24430 | (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); | 24475 | return false; |
24431 | } | 24476 | } |
24432 | 24477 | units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); | |
24433 | function isSame (input, units) { | 24478 | if (units === 'millisecond') { |
24434 | var localInput = isMoment(input) ? input : local__createLocal(input), | 24479 | return this.valueOf() > localInput.valueOf(); |
24435 | inputMs; | 24480 | } else { |
24436 | if (!(this.isValid() && localInput.isValid())) { | 24481 | return localInput.valueOf() < this.clone().startOf(units).valueOf(); |
24437 | return false; | ||
24438 | } | ||
24439 | units = normalizeUnits(units || 'millisecond'); | ||
24440 | if (units === 'millisecond') { | ||
24441 | return this.valueOf() === localInput.valueOf(); | ||
24442 | } else { | ||
24443 | inputMs = localInput.valueOf(); | ||
24444 | return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); | ||
24445 | } | ||
24446 | } | 24482 | } |
24483 | } | ||
24447 | 24484 | ||
24448 | function isSameOrAfter (input, units) { | 24485 | function isBefore (input, units) { |
24449 | return this.isSame(input, units) || this.isAfter(input,units); | 24486 | var localInput = isMoment(input) ? input : createLocal(input); |
24487 | if (!(this.isValid() && localInput.isValid())) { | ||
24488 | return false; | ||
24450 | } | 24489 | } |
24451 | 24490 | units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); | |
24452 | function isSameOrBefore (input, units) { | 24491 | if (units === 'millisecond') { |
24453 | return this.isSame(input, units) || this.isBefore(input,units); | 24492 | return this.valueOf() < localInput.valueOf(); |
24493 | } else { | ||
24494 | return this.clone().endOf(units).valueOf() < localInput.valueOf(); | ||
24454 | } | 24495 | } |
24496 | } | ||
24455 | 24497 | ||
24456 | function diff (input, units, asFloat) { | 24498 | function isBetween (from, to, units, inclusivity) { |
24457 | var that, | 24499 | inclusivity = inclusivity || '()'; |
24458 | zoneDelta, | 24500 | return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && |
24459 | delta, output; | 24501 | (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); |
24502 | } | ||
24460 | 24503 | ||
24461 | if (!this.isValid()) { | 24504 | function isSame (input, units) { |
24462 | return NaN; | 24505 | var localInput = isMoment(input) ? input : createLocal(input), |
24463 | } | 24506 | inputMs; |
24507 | if (!(this.isValid() && localInput.isValid())) { | ||
24508 | return false; | ||
24509 | } | ||
24510 | units = normalizeUnits(units || 'millisecond'); | ||
24511 | if (units === 'millisecond') { | ||
24512 | return this.valueOf() === localInput.valueOf(); | ||
24513 | } else { | ||
24514 | inputMs = localInput.valueOf(); | ||
24515 | return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); | ||
24516 | } | ||
24517 | } | ||
24464 | 24518 | ||
24465 | that = cloneWithOffset(input, this); | 24519 | function isSameOrAfter (input, units) { |
24520 | return this.isSame(input, units) || this.isAfter(input,units); | ||
24521 | } | ||
24466 | 24522 | ||
24467 | if (!that.isValid()) { | 24523 | function isSameOrBefore (input, units) { |
24468 | return NaN; | 24524 | return this.isSame(input, units) || this.isBefore(input,units); |
24469 | } | 24525 | } |
24470 | 24526 | ||
24471 | zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; | 24527 | function diff (input, units, asFloat) { |
24528 | var that, | ||
24529 | zoneDelta, | ||
24530 | delta, output; | ||
24472 | 24531 | ||
24473 | units = normalizeUnits(units); | 24532 | if (!this.isValid()) { |
24474 | 24533 | return NaN; | |
24475 | if (units === 'year' || units === 'month' || units === 'quarter') { | ||
24476 | output = monthDiff(this, that); | ||
24477 | if (units === 'quarter') { | ||
24478 | output = output / 3; | ||
24479 | } else if (units === 'year') { | ||
24480 | output = output / 12; | ||
24481 | } | ||
24482 | } else { | ||
24483 | delta = this - that; | ||
24484 | output = units === 'second' ? delta / 1e3 : // 1000 | ||
24485 | units === 'minute' ? delta / 6e4 : // 1000 * 60 | ||
24486 | units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 | ||
24487 | units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst | ||
24488 | units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst | ||
24489 | delta; | ||
24490 | } | ||
24491 | return asFloat ? output : absFloor(output); | ||
24492 | } | 24534 | } |
24493 | 24535 | ||
24494 | function monthDiff (a, b) { | 24536 | that = cloneWithOffset(input, this); |
24495 | // difference in months | ||
24496 | var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), | ||
24497 | // b is in (anchor - 1 month, anchor + 1 month) | ||
24498 | anchor = a.clone().add(wholeMonthDiff, 'months'), | ||
24499 | anchor2, adjust; | ||
24500 | |||
24501 | if (b - anchor < 0) { | ||
24502 | anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); | ||
24503 | // linear across the month | ||
24504 | adjust = (b - anchor) / (anchor - anchor2); | ||
24505 | } else { | ||
24506 | anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); | ||
24507 | // linear across the month | ||
24508 | adjust = (b - anchor) / (anchor2 - anchor); | ||
24509 | } | ||
24510 | 24537 | ||
24511 | //check for negative zero, return zero if negative zero | 24538 | if (!that.isValid()) { |
24512 | return -(wholeMonthDiff + adjust) || 0; | 24539 | return NaN; |
24513 | } | 24540 | } |
24514 | 24541 | ||
24515 | utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; | 24542 | zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; |
24516 | utils_hooks__hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; | ||
24517 | 24543 | ||
24518 | function toString () { | 24544 | units = normalizeUnits(units); |
24519 | return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); | ||
24520 | } | ||
24521 | 24545 | ||
24522 | function moment_format__toISOString () { | 24546 | if (units === 'year' || units === 'month' || units === 'quarter') { |
24523 | var m = this.clone().utc(); | 24547 | output = monthDiff(this, that); |
24524 | if (0 < m.year() && m.year() <= 9999) { | 24548 | if (units === 'quarter') { |
24525 | if (isFunction(Date.prototype.toISOString)) { | 24549 | output = output / 3; |
24526 | // native implementation is ~50x faster, use it when we can | 24550 | } else if (units === 'year') { |
24527 | return this.toDate().toISOString(); | 24551 | output = output / 12; |
24528 | } else { | ||
24529 | return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); | ||
24530 | } | ||
24531 | } else { | ||
24532 | return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); | ||
24533 | } | 24552 | } |
24553 | } else { | ||
24554 | delta = this - that; | ||
24555 | output = units === 'second' ? delta / 1e3 : // 1000 | ||
24556 | units === 'minute' ? delta / 6e4 : // 1000 * 60 | ||
24557 | units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 | ||
24558 | units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst | ||
24559 | units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst | ||
24560 | delta; | ||
24561 | } | ||
24562 | return asFloat ? output : absFloor(output); | ||
24563 | } | ||
24564 | |||
24565 | function monthDiff (a, b) { | ||
24566 | // difference in months | ||
24567 | var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), | ||
24568 | // b is in (anchor - 1 month, anchor + 1 month) | ||
24569 | anchor = a.clone().add(wholeMonthDiff, 'months'), | ||
24570 | anchor2, adjust; | ||
24571 | |||
24572 | if (b - anchor < 0) { | ||
24573 | anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); | ||
24574 | // linear across the month | ||
24575 | adjust = (b - anchor) / (anchor - anchor2); | ||
24576 | } else { | ||
24577 | anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); | ||
24578 | // linear across the month | ||
24579 | adjust = (b - anchor) / (anchor2 - anchor); | ||
24534 | } | 24580 | } |
24535 | 24581 | ||
24536 | function format (inputString) { | 24582 | //check for negative zero, return zero if negative zero |
24537 | if (!inputString) { | 24583 | return -(wholeMonthDiff + adjust) || 0; |
24538 | inputString = this.isUtc() ? utils_hooks__hooks.defaultFormatUtc : utils_hooks__hooks.defaultFormat; | 24584 | } |
24539 | } | ||
24540 | var output = formatMoment(this, inputString); | ||
24541 | return this.localeData().postformat(output); | ||
24542 | } | ||
24543 | 24585 | ||
24544 | function from (time, withoutSuffix) { | 24586 | hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; |
24545 | if (this.isValid() && | 24587 | hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; |
24546 | ((isMoment(time) && time.isValid()) || | ||
24547 | local__createLocal(time).isValid())) { | ||
24548 | return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); | ||
24549 | } else { | ||
24550 | return this.localeData().invalidDate(); | ||
24551 | } | ||
24552 | } | ||
24553 | 24588 | ||
24554 | function fromNow (withoutSuffix) { | 24589 | function toString () { |
24555 | return this.from(local__createLocal(), withoutSuffix); | 24590 | return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); |
24556 | } | 24591 | } |
24557 | 24592 | ||
24558 | function to (time, withoutSuffix) { | 24593 | function toISOString () { |
24559 | if (this.isValid() && | 24594 | var m = this.clone().utc(); |
24560 | ((isMoment(time) && time.isValid()) || | 24595 | if (0 < m.year() && m.year() <= 9999) { |
24561 | local__createLocal(time).isValid())) { | 24596 | if (isFunction(Date.prototype.toISOString)) { |
24562 | return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); | 24597 | // native implementation is ~50x faster, use it when we can |
24598 | return this.toDate().toISOString(); | ||
24563 | } else { | 24599 | } else { |
24564 | return this.localeData().invalidDate(); | 24600 | return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); |
24565 | } | 24601 | } |
24602 | } else { | ||
24603 | return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); | ||
24566 | } | 24604 | } |
24605 | } | ||
24567 | 24606 | ||
24568 | function toNow (withoutSuffix) { | 24607 | /** |
24569 | return this.to(local__createLocal(), withoutSuffix); | 24608 | * Return a human readable representation of a moment that can |
24609 | * also be evaluated to get a new moment which is the same | ||
24610 | * | ||
24611 | * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects | ||
24612 | */ | ||
24613 | function inspect () { | ||
24614 | if (!this.isValid()) { | ||
24615 | return 'moment.invalid(/* ' + this._i + ' */)'; | ||
24570 | } | 24616 | } |
24617 | var func = 'moment'; | ||
24618 | var zone = ''; | ||
24619 | if (!this.isLocal()) { | ||
24620 | func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; | ||
24621 | zone = 'Z'; | ||
24622 | } | ||
24623 | var prefix = '[' + func + '("]'; | ||
24624 | var year = (0 < this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; | ||
24625 | var datetime = '-MM-DD[T]HH:mm:ss.SSS'; | ||
24626 | var suffix = zone + '[")]'; | ||
24571 | 24627 | ||
24572 | // If passed a locale key, it will set the locale for this | 24628 | return this.format(prefix + year + datetime + suffix); |
24573 | // instance. Otherwise, it will return the locale configuration | 24629 | } |
24574 | // variables for this instance. | ||
24575 | function locale (key) { | ||
24576 | var newLocaleData; | ||
24577 | 24630 | ||
24578 | if (key === undefined) { | 24631 | function format (inputString) { |
24579 | return this._locale._abbr; | 24632 | if (!inputString) { |
24580 | } else { | 24633 | inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; |
24581 | newLocaleData = locale_locales__getLocale(key); | ||
24582 | if (newLocaleData != null) { | ||
24583 | this._locale = newLocaleData; | ||
24584 | } | ||
24585 | return this; | ||
24586 | } | ||
24587 | } | 24634 | } |
24635 | var output = formatMoment(this, inputString); | ||
24636 | return this.localeData().postformat(output); | ||
24637 | } | ||
24588 | 24638 | ||
24589 | var lang = deprecate( | 24639 | function from (time, withoutSuffix) { |
24590 | 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', | 24640 | if (this.isValid() && |
24591 | function (key) { | 24641 | ((isMoment(time) && time.isValid()) || |
24592 | if (key === undefined) { | 24642 | createLocal(time).isValid())) { |
24593 | return this.localeData(); | 24643 | return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); |
24594 | } else { | 24644 | } else { |
24595 | return this.locale(key); | 24645 | return this.localeData().invalidDate(); |
24596 | } | 24646 | } |
24597 | } | 24647 | } |
24598 | ); | ||
24599 | 24648 | ||
24600 | function localeData () { | 24649 | function fromNow (withoutSuffix) { |
24601 | return this._locale; | 24650 | return this.from(createLocal(), withoutSuffix); |
24651 | } | ||
24652 | |||
24653 | function to (time, withoutSuffix) { | ||
24654 | if (this.isValid() && | ||
24655 | ((isMoment(time) && time.isValid()) || | ||
24656 | createLocal(time).isValid())) { | ||
24657 | return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); | ||
24658 | } else { | ||
24659 | return this.localeData().invalidDate(); | ||
24602 | } | 24660 | } |
24661 | } | ||
24603 | 24662 | ||
24604 | function startOf (units) { | 24663 | function toNow (withoutSuffix) { |
24605 | units = normalizeUnits(units); | 24664 | return this.to(createLocal(), withoutSuffix); |
24606 | // the following switch intentionally omits break keywords | 24665 | } |
24607 | // to utilize falling through the cases. | ||
24608 | switch (units) { | ||
24609 | case 'year': | ||
24610 | this.month(0); | ||
24611 | /* falls through */ | ||
24612 | case 'quarter': | ||
24613 | case 'month': | ||
24614 | this.date(1); | ||
24615 | /* falls through */ | ||
24616 | case 'week': | ||
24617 | case 'isoWeek': | ||
24618 | case 'day': | ||
24619 | case 'date': | ||
24620 | this.hours(0); | ||
24621 | /* falls through */ | ||
24622 | case 'hour': | ||
24623 | this.minutes(0); | ||
24624 | /* falls through */ | ||
24625 | case 'minute': | ||
24626 | this.seconds(0); | ||
24627 | /* falls through */ | ||
24628 | case 'second': | ||
24629 | this.milliseconds(0); | ||
24630 | } | ||
24631 | 24666 | ||
24632 | // weeks are a special case | 24667 | // If passed a locale key, it will set the locale for this |
24633 | if (units === 'week') { | 24668 | // instance. Otherwise, it will return the locale configuration |
24634 | this.weekday(0); | 24669 | // variables for this instance. |
24635 | } | 24670 | function locale (key) { |
24636 | if (units === 'isoWeek') { | 24671 | var newLocaleData; |
24637 | this.isoWeekday(1); | ||
24638 | } | ||
24639 | 24672 | ||
24640 | // quarters are also special | 24673 | if (key === undefined) { |
24641 | if (units === 'quarter') { | 24674 | return this._locale._abbr; |
24642 | this.month(Math.floor(this.month() / 3) * 3); | 24675 | } else { |
24676 | newLocaleData = getLocale(key); | ||
24677 | if (newLocaleData != null) { | ||
24678 | this._locale = newLocaleData; | ||
24643 | } | 24679 | } |
24644 | |||
24645 | return this; | 24680 | return this; |
24646 | } | 24681 | } |
24682 | } | ||
24647 | 24683 | ||
24648 | function endOf (units) { | 24684 | var lang = deprecate( |
24649 | units = normalizeUnits(units); | 24685 | 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', |
24650 | if (units === undefined || units === 'millisecond') { | 24686 | function (key) { |
24651 | return this; | 24687 | if (key === undefined) { |
24652 | } | 24688 | return this.localeData(); |
24653 | 24689 | } else { | |
24654 | // 'date' is an alias for 'day', so it should be considered as such. | 24690 | return this.locale(key); |
24655 | if (units === 'date') { | ||
24656 | units = 'day'; | ||
24657 | } | 24691 | } |
24658 | |||
24659 | return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); | ||
24660 | } | 24692 | } |
24693 | ); | ||
24661 | 24694 | ||
24662 | function to_type__valueOf () { | 24695 | function localeData () { |
24663 | return this._d.valueOf() - ((this._offset || 0) * 60000); | 24696 | return this._locale; |
24664 | } | 24697 | } |
24665 | |||
24666 | function unix () { | ||
24667 | return Math.floor(this.valueOf() / 1000); | ||
24668 | } | ||
24669 | 24698 | ||
24670 | function toDate () { | 24699 | function startOf (units) { |
24671 | return new Date(this.valueOf()); | 24700 | units = normalizeUnits(units); |
24701 | // the following switch intentionally omits break keywords | ||
24702 | // to utilize falling through the cases. | ||
24703 | switch (units) { | ||
24704 | case 'year': | ||
24705 | this.month(0); | ||
24706 | /* falls through */ | ||
24707 | case 'quarter': | ||
24708 | case 'month': | ||
24709 | this.date(1); | ||
24710 | /* falls through */ | ||
24711 | case 'week': | ||
24712 | case 'isoWeek': | ||
24713 | case 'day': | ||
24714 | case 'date': | ||
24715 | this.hours(0); | ||
24716 | /* falls through */ | ||
24717 | case 'hour': | ||
24718 | this.minutes(0); | ||
24719 | /* falls through */ | ||
24720 | case 'minute': | ||
24721 | this.seconds(0); | ||
24722 | /* falls through */ | ||
24723 | case 'second': | ||
24724 | this.milliseconds(0); | ||
24672 | } | 24725 | } |
24673 | 24726 | ||
24674 | function toArray () { | 24727 | // weeks are a special case |
24675 | var m = this; | 24728 | if (units === 'week') { |
24676 | return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; | 24729 | this.weekday(0); |
24677 | } | 24730 | } |
24678 | 24731 | if (units === 'isoWeek') { | |
24679 | function toObject () { | 24732 | this.isoWeekday(1); |
24680 | var m = this; | ||
24681 | return { | ||
24682 | years: m.year(), | ||
24683 | months: m.month(), | ||
24684 | date: m.date(), | ||
24685 | hours: m.hours(), | ||
24686 | minutes: m.minutes(), | ||
24687 | seconds: m.seconds(), | ||
24688 | milliseconds: m.milliseconds() | ||
24689 | }; | ||
24690 | } | 24733 | } |
24691 | 24734 | ||
24692 | function toJSON () { | 24735 | // quarters are also special |
24693 | // new Date(NaN).toJSON() === null | 24736 | if (units === 'quarter') { |
24694 | return this.isValid() ? this.toISOString() : null; | 24737 | this.month(Math.floor(this.month() / 3) * 3); |
24695 | } | 24738 | } |
24696 | 24739 | ||
24697 | function moment_valid__isValid () { | 24740 | return this; |
24698 | return valid__isValid(this); | 24741 | } |
24699 | } | ||
24700 | 24742 | ||
24701 | function parsingFlags () { | 24743 | function endOf (units) { |
24702 | return extend({}, getParsingFlags(this)); | 24744 | units = normalizeUnits(units); |
24745 | if (units === undefined || units === 'millisecond') { | ||
24746 | return this; | ||
24703 | } | 24747 | } |
24704 | 24748 | ||
24705 | function invalidAt () { | 24749 | // 'date' is an alias for 'day', so it should be considered as such. |
24706 | return getParsingFlags(this).overflow; | 24750 | if (units === 'date') { |
24751 | units = 'day'; | ||
24707 | } | 24752 | } |
24708 | 24753 | ||
24709 | function creationData() { | 24754 | return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); |
24710 | return { | 24755 | } |
24711 | input: this._i, | ||
24712 | format: this._f, | ||
24713 | locale: this._locale, | ||
24714 | isUTC: this._isUTC, | ||
24715 | strict: this._strict | ||
24716 | }; | ||
24717 | } | ||
24718 | |||
24719 | // FORMATTING | ||
24720 | |||
24721 | addFormatToken(0, ['gg', 2], 0, function () { | ||
24722 | return this.weekYear() % 100; | ||
24723 | }); | ||
24724 | 24756 | ||
24725 | addFormatToken(0, ['GG', 2], 0, function () { | 24757 | function valueOf () { |
24726 | return this.isoWeekYear() % 100; | 24758 | return this._d.valueOf() - ((this._offset || 0) * 60000); |
24727 | }); | 24759 | } |
24728 | 24760 | ||
24729 | function addWeekYearFormatToken (token, getter) { | 24761 | function unix () { |
24730 | addFormatToken(0, [token, token.length], 0, getter); | 24762 | return Math.floor(this.valueOf() / 1000); |
24731 | } | 24763 | } |
24732 | 24764 | ||
24733 | addWeekYearFormatToken('gggg', 'weekYear'); | 24765 | function toDate () { |
24734 | addWeekYearFormatToken('ggggg', 'weekYear'); | 24766 | return new Date(this.valueOf()); |
24735 | addWeekYearFormatToken('GGGG', 'isoWeekYear'); | 24767 | } |
24736 | addWeekYearFormatToken('GGGGG', 'isoWeekYear'); | ||
24737 | 24768 | ||
24738 | // ALIASES | 24769 | function toArray () { |
24770 | var m = this; | ||
24771 | return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; | ||
24772 | } | ||
24739 | 24773 | ||
24740 | addUnitAlias('weekYear', 'gg'); | 24774 | function toObject () { |
24741 | addUnitAlias('isoWeekYear', 'GG'); | 24775 | var m = this; |
24776 | return { | ||
24777 | years: m.year(), | ||
24778 | months: m.month(), | ||
24779 | date: m.date(), | ||
24780 | hours: m.hours(), | ||
24781 | minutes: m.minutes(), | ||
24782 | seconds: m.seconds(), | ||
24783 | milliseconds: m.milliseconds() | ||
24784 | }; | ||
24785 | } | ||
24742 | 24786 | ||
24743 | // PRIORITY | 24787 | function toJSON () { |
24788 | // new Date(NaN).toJSON() === null | ||
24789 | return this.isValid() ? this.toISOString() : null; | ||
24790 | } | ||
24744 | 24791 | ||
24745 | addUnitPriority('weekYear', 1); | 24792 | function isValid$1 () { |
24746 | addUnitPriority('isoWeekYear', 1); | 24793 | return isValid(this); |
24794 | } | ||
24747 | 24795 | ||
24796 | function parsingFlags () { | ||
24797 | return extend({}, getParsingFlags(this)); | ||
24798 | } | ||
24748 | 24799 | ||
24749 | // PARSING | 24800 | function invalidAt () { |
24801 | return getParsingFlags(this).overflow; | ||
24802 | } | ||
24750 | 24803 | ||
24751 | addRegexToken('G', matchSigned); | 24804 | function creationData() { |
24752 | addRegexToken('g', matchSigned); | 24805 | return { |
24753 | addRegexToken('GG', match1to2, match2); | 24806 | input: this._i, |
24754 | addRegexToken('gg', match1to2, match2); | 24807 | format: this._f, |
24755 | addRegexToken('GGGG', match1to4, match4); | 24808 | locale: this._locale, |
24756 | addRegexToken('gggg', match1to4, match4); | 24809 | isUTC: this._isUTC, |
24757 | addRegexToken('GGGGG', match1to6, match6); | 24810 | strict: this._strict |
24758 | addRegexToken('ggggg', match1to6, match6); | 24811 | }; |
24812 | } | ||
24759 | 24813 | ||
24760 | addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { | 24814 | // FORMATTING |
24761 | week[token.substr(0, 2)] = toInt(input); | ||
24762 | }); | ||
24763 | 24815 | ||
24764 | addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { | 24816 | addFormatToken(0, ['gg', 2], 0, function () { |
24765 | week[token] = utils_hooks__hooks.parseTwoDigitYear(input); | 24817 | return this.weekYear() % 100; |
24766 | }); | 24818 | }); |
24767 | 24819 | ||
24768 | // MOMENTS | 24820 | addFormatToken(0, ['GG', 2], 0, function () { |
24821 | return this.isoWeekYear() % 100; | ||
24822 | }); | ||
24769 | 24823 | ||
24770 | function getSetWeekYear (input) { | 24824 | function addWeekYearFormatToken (token, getter) { |
24771 | return getSetWeekYearHelper.call(this, | 24825 | addFormatToken(0, [token, token.length], 0, getter); |
24772 | input, | 24826 | } |
24773 | this.week(), | ||
24774 | this.weekday(), | ||
24775 | this.localeData()._week.dow, | ||
24776 | this.localeData()._week.doy); | ||
24777 | } | ||
24778 | 24827 | ||
24779 | function getSetISOWeekYear (input) { | 24828 | addWeekYearFormatToken('gggg', 'weekYear'); |
24780 | return getSetWeekYearHelper.call(this, | 24829 | addWeekYearFormatToken('ggggg', 'weekYear'); |
24781 | input, this.isoWeek(), this.isoWeekday(), 1, 4); | 24830 | addWeekYearFormatToken('GGGG', 'isoWeekYear'); |
24782 | } | 24831 | addWeekYearFormatToken('GGGGG', 'isoWeekYear'); |
24783 | 24832 | ||
24784 | function getISOWeeksInYear () { | 24833 | // ALIASES |
24785 | return weeksInYear(this.year(), 1, 4); | ||
24786 | } | ||
24787 | 24834 | ||
24788 | function getWeeksInYear () { | 24835 | addUnitAlias('weekYear', 'gg'); |
24789 | var weekInfo = this.localeData()._week; | 24836 | addUnitAlias('isoWeekYear', 'GG'); |
24790 | return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); | ||
24791 | } | ||
24792 | 24837 | ||
24793 | function getSetWeekYearHelper(input, week, weekday, dow, doy) { | 24838 | // PRIORITY |
24794 | var weeksTarget; | ||
24795 | if (input == null) { | ||
24796 | return weekOfYear(this, dow, doy).year; | ||
24797 | } else { | ||
24798 | weeksTarget = weeksInYear(input, dow, doy); | ||
24799 | if (week > weeksTarget) { | ||
24800 | week = weeksTarget; | ||
24801 | } | ||
24802 | return setWeekAll.call(this, input, week, weekday, dow, doy); | ||
24803 | } | ||
24804 | } | ||
24805 | 24839 | ||
24806 | function setWeekAll(weekYear, week, weekday, dow, doy) { | 24840 | addUnitPriority('weekYear', 1); |
24807 | var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), | 24841 | addUnitPriority('isoWeekYear', 1); |
24808 | date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); | ||
24809 | 24842 | ||
24810 | this.year(date.getUTCFullYear()); | ||
24811 | this.month(date.getUTCMonth()); | ||
24812 | this.date(date.getUTCDate()); | ||
24813 | return this; | ||
24814 | } | ||
24815 | 24843 | ||
24816 | // FORMATTING | 24844 | // PARSING |
24817 | 24845 | ||
24818 | addFormatToken('Q', 0, 'Qo', 'quarter'); | 24846 | addRegexToken('G', matchSigned); |
24847 | addRegexToken('g', matchSigned); | ||
24848 | addRegexToken('GG', match1to2, match2); | ||
24849 | addRegexToken('gg', match1to2, match2); | ||
24850 | addRegexToken('GGGG', match1to4, match4); | ||
24851 | addRegexToken('gggg', match1to4, match4); | ||
24852 | addRegexToken('GGGGG', match1to6, match6); | ||
24853 | addRegexToken('ggggg', match1to6, match6); | ||
24819 | 24854 | ||
24820 | // ALIASES | 24855 | addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { |
24856 | week[token.substr(0, 2)] = toInt(input); | ||
24857 | }); | ||
24821 | 24858 | ||
24822 | addUnitAlias('quarter', 'Q'); | 24859 | addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { |
24860 | week[token] = hooks.parseTwoDigitYear(input); | ||
24861 | }); | ||
24823 | 24862 | ||
24824 | // PRIORITY | 24863 | // MOMENTS |
24825 | 24864 | ||
24826 | addUnitPriority('quarter', 7); | 24865 | function getSetWeekYear (input) { |
24866 | return getSetWeekYearHelper.call(this, | ||
24867 | input, | ||
24868 | this.week(), | ||
24869 | this.weekday(), | ||
24870 | this.localeData()._week.dow, | ||
24871 | this.localeData()._week.doy); | ||
24872 | } | ||
24827 | 24873 | ||
24828 | // PARSING | 24874 | function getSetISOWeekYear (input) { |
24875 | return getSetWeekYearHelper.call(this, | ||
24876 | input, this.isoWeek(), this.isoWeekday(), 1, 4); | ||
24877 | } | ||
24829 | 24878 | ||
24830 | addRegexToken('Q', match1); | 24879 | function getISOWeeksInYear () { |
24831 | addParseToken('Q', function (input, array) { | 24880 | return weeksInYear(this.year(), 1, 4); |
24832 | array[MONTH] = (toInt(input) - 1) * 3; | 24881 | } |
24833 | }); | ||
24834 | 24882 | ||
24835 | // MOMENTS | 24883 | function getWeeksInYear () { |
24884 | var weekInfo = this.localeData()._week; | ||
24885 | return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); | ||
24886 | } | ||
24836 | 24887 | ||
24837 | function getSetQuarter (input) { | 24888 | function getSetWeekYearHelper(input, week, weekday, dow, doy) { |
24838 | return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); | 24889 | var weeksTarget; |
24890 | if (input == null) { | ||
24891 | return weekOfYear(this, dow, doy).year; | ||
24892 | } else { | ||
24893 | weeksTarget = weeksInYear(input, dow, doy); | ||
24894 | if (week > weeksTarget) { | ||
24895 | week = weeksTarget; | ||
24896 | } | ||
24897 | return setWeekAll.call(this, input, week, weekday, dow, doy); | ||
24839 | } | 24898 | } |
24899 | } | ||
24840 | 24900 | ||
24841 | // FORMATTING | 24901 | function setWeekAll(weekYear, week, weekday, dow, doy) { |
24842 | 24902 | var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), | |
24843 | addFormatToken('D', ['DD', 2], 'Do', 'date'); | 24903 | date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); |
24844 | |||
24845 | // ALIASES | ||
24846 | 24904 | ||
24847 | addUnitAlias('date', 'D'); | 24905 | this.year(date.getUTCFullYear()); |
24906 | this.month(date.getUTCMonth()); | ||
24907 | this.date(date.getUTCDate()); | ||
24908 | return this; | ||
24909 | } | ||
24848 | 24910 | ||
24849 | // PRIOROITY | 24911 | // FORMATTING |
24850 | addUnitPriority('date', 9); | ||
24851 | 24912 | ||
24852 | // PARSING | 24913 | addFormatToken('Q', 0, 'Qo', 'quarter'); |
24853 | 24914 | ||
24854 | addRegexToken('D', match1to2); | 24915 | // ALIASES |
24855 | addRegexToken('DD', match1to2, match2); | ||
24856 | addRegexToken('Do', function (isStrict, locale) { | ||
24857 | return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; | ||
24858 | }); | ||
24859 | 24916 | ||
24860 | addParseToken(['D', 'DD'], DATE); | 24917 | addUnitAlias('quarter', 'Q'); |
24861 | addParseToken('Do', function (input, array) { | ||
24862 | array[DATE] = toInt(input.match(match1to2)[0], 10); | ||
24863 | }); | ||
24864 | 24918 | ||
24865 | // MOMENTS | 24919 | // PRIORITY |
24866 | 24920 | ||
24867 | var getSetDayOfMonth = makeGetSet('Date', true); | 24921 | addUnitPriority('quarter', 7); |
24868 | 24922 | ||
24869 | // FORMATTING | 24923 | // PARSING |
24870 | 24924 | ||
24871 | addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); | 24925 | addRegexToken('Q', match1); |
24926 | addParseToken('Q', function (input, array) { | ||
24927 | array[MONTH] = (toInt(input) - 1) * 3; | ||
24928 | }); | ||
24872 | 24929 | ||
24873 | // ALIASES | 24930 | // MOMENTS |
24874 | 24931 | ||
24875 | addUnitAlias('dayOfYear', 'DDD'); | 24932 | function getSetQuarter (input) { |
24933 | return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); | ||
24934 | } | ||
24876 | 24935 | ||
24877 | // PRIORITY | 24936 | // FORMATTING |
24878 | addUnitPriority('dayOfYear', 4); | ||
24879 | 24937 | ||
24880 | // PARSING | 24938 | addFormatToken('D', ['DD', 2], 'Do', 'date'); |
24881 | 24939 | ||
24882 | addRegexToken('DDD', match1to3); | 24940 | // ALIASES |
24883 | addRegexToken('DDDD', match3); | ||
24884 | addParseToken(['DDD', 'DDDD'], function (input, array, config) { | ||
24885 | config._dayOfYear = toInt(input); | ||
24886 | }); | ||
24887 | 24941 | ||
24888 | // HELPERS | 24942 | addUnitAlias('date', 'D'); |
24889 | 24943 | ||
24890 | // MOMENTS | 24944 | // PRIOROITY |
24945 | addUnitPriority('date', 9); | ||
24891 | 24946 | ||
24892 | function getSetDayOfYear (input) { | 24947 | // PARSING |
24893 | var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; | ||
24894 | return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); | ||
24895 | } | ||
24896 | 24948 | ||
24897 | // FORMATTING | 24949 | addRegexToken('D', match1to2); |
24950 | addRegexToken('DD', match1to2, match2); | ||
24951 | addRegexToken('Do', function (isStrict, locale) { | ||
24952 | return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; | ||
24953 | }); | ||
24898 | 24954 | ||
24899 | addFormatToken('m', ['mm', 2], 0, 'minute'); | 24955 | addParseToken(['D', 'DD'], DATE); |
24956 | addParseToken('Do', function (input, array) { | ||
24957 | array[DATE] = toInt(input.match(match1to2)[0], 10); | ||
24958 | }); | ||
24900 | 24959 | ||
24901 | // ALIASES | 24960 | // MOMENTS |
24902 | 24961 | ||
24903 | addUnitAlias('minute', 'm'); | 24962 | var getSetDayOfMonth = makeGetSet('Date', true); |
24904 | 24963 | ||
24905 | // PRIORITY | 24964 | // FORMATTING |
24906 | 24965 | ||
24907 | addUnitPriority('minute', 14); | 24966 | addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); |
24908 | 24967 | ||
24909 | // PARSING | 24968 | // ALIASES |
24910 | 24969 | ||
24911 | addRegexToken('m', match1to2); | 24970 | addUnitAlias('dayOfYear', 'DDD'); |
24912 | addRegexToken('mm', match1to2, match2); | ||
24913 | addParseToken(['m', 'mm'], MINUTE); | ||
24914 | 24971 | ||
24915 | // MOMENTS | 24972 | // PRIORITY |
24973 | addUnitPriority('dayOfYear', 4); | ||
24916 | 24974 | ||
24917 | var getSetMinute = makeGetSet('Minutes', false); | 24975 | // PARSING |
24918 | 24976 | ||
24919 | // FORMATTING | 24977 | addRegexToken('DDD', match1to3); |
24978 | addRegexToken('DDDD', match3); | ||
24979 | addParseToken(['DDD', 'DDDD'], function (input, array, config) { | ||
24980 | config._dayOfYear = toInt(input); | ||
24981 | }); | ||
24920 | 24982 | ||
24921 | addFormatToken('s', ['ss', 2], 0, 'second'); | 24983 | // HELPERS |
24922 | 24984 | ||
24923 | // ALIASES | 24985 | // MOMENTS |
24924 | 24986 | ||
24925 | addUnitAlias('second', 's'); | 24987 | function getSetDayOfYear (input) { |
24988 | var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; | ||
24989 | return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); | ||
24990 | } | ||
24926 | 24991 | ||
24927 | // PRIORITY | 24992 | // FORMATTING |
24928 | 24993 | ||
24929 | addUnitPriority('second', 15); | 24994 | addFormatToken('m', ['mm', 2], 0, 'minute'); |
24930 | 24995 | ||
24931 | // PARSING | 24996 | // ALIASES |
24932 | 24997 | ||
24933 | addRegexToken('s', match1to2); | 24998 | addUnitAlias('minute', 'm'); |
24934 | addRegexToken('ss', match1to2, match2); | ||
24935 | addParseToken(['s', 'ss'], SECOND); | ||
24936 | 24999 | ||
24937 | // MOMENTS | 25000 | // PRIORITY |
24938 | 25001 | ||
24939 | var getSetSecond = makeGetSet('Seconds', false); | 25002 | addUnitPriority('minute', 14); |
24940 | 25003 | ||
24941 | // FORMATTING | 25004 | // PARSING |
24942 | 25005 | ||
24943 | addFormatToken('S', 0, 0, function () { | 25006 | addRegexToken('m', match1to2); |
24944 | return ~~(this.millisecond() / 100); | 25007 | addRegexToken('mm', match1to2, match2); |
24945 | }); | 25008 | addParseToken(['m', 'mm'], MINUTE); |
24946 | 25009 | ||
24947 | addFormatToken(0, ['SS', 2], 0, function () { | 25010 | // MOMENTS |
24948 | return ~~(this.millisecond() / 10); | ||
24949 | }); | ||
24950 | 25011 | ||
24951 | addFormatToken(0, ['SSS', 3], 0, 'millisecond'); | 25012 | var getSetMinute = makeGetSet('Minutes', false); |
24952 | addFormatToken(0, ['SSSS', 4], 0, function () { | ||
24953 | return this.millisecond() * 10; | ||
24954 | }); | ||
24955 | addFormatToken(0, ['SSSSS', 5], 0, function () { | ||
24956 | return this.millisecond() * 100; | ||
24957 | }); | ||
24958 | addFormatToken(0, ['SSSSSS', 6], 0, function () { | ||
24959 | return this.millisecond() * 1000; | ||
24960 | }); | ||
24961 | addFormatToken(0, ['SSSSSSS', 7], 0, function () { | ||
24962 | return this.millisecond() * 10000; | ||
24963 | }); | ||
24964 | addFormatToken(0, ['SSSSSSSS', 8], 0, function () { | ||
24965 | return this.millisecond() * 100000; | ||
24966 | }); | ||
24967 | addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { | ||
24968 | return this.millisecond() * 1000000; | ||
24969 | }); | ||
24970 | 25013 | ||
25014 | // FORMATTING | ||
24971 | 25015 | ||
24972 | // ALIASES | 25016 | addFormatToken('s', ['ss', 2], 0, 'second'); |
24973 | 25017 | ||
24974 | addUnitAlias('millisecond', 'ms'); | 25018 | // ALIASES |
24975 | 25019 | ||
24976 | // PRIORITY | 25020 | addUnitAlias('second', 's'); |
24977 | 25021 | ||
24978 | addUnitPriority('millisecond', 16); | 25022 | // PRIORITY |
24979 | 25023 | ||
24980 | // PARSING | 25024 | addUnitPriority('second', 15); |
24981 | 25025 | ||
24982 | addRegexToken('S', match1to3, match1); | 25026 | // PARSING |
24983 | addRegexToken('SS', match1to3, match2); | ||
24984 | addRegexToken('SSS', match1to3, match3); | ||
24985 | 25027 | ||
24986 | var token; | 25028 | addRegexToken('s', match1to2); |
24987 | for (token = 'SSSS'; token.length <= 9; token += 'S') { | 25029 | addRegexToken('ss', match1to2, match2); |
24988 | addRegexToken(token, matchUnsigned); | 25030 | addParseToken(['s', 'ss'], SECOND); |
24989 | } | ||
24990 | 25031 | ||
24991 | function parseMs(input, array) { | 25032 | // MOMENTS |
24992 | array[MILLISECOND] = toInt(('0.' + input) * 1000); | ||
24993 | } | ||
24994 | 25033 | ||
24995 | for (token = 'S'; token.length <= 9; token += 'S') { | 25034 | var getSetSecond = makeGetSet('Seconds', false); |
24996 | addParseToken(token, parseMs); | ||
24997 | } | ||
24998 | // MOMENTS | ||
24999 | 25035 | ||
25000 | var getSetMillisecond = makeGetSet('Milliseconds', false); | 25036 | // FORMATTING |
25001 | 25037 | ||
25002 | // FORMATTING | 25038 | addFormatToken('S', 0, 0, function () { |
25039 | return ~~(this.millisecond() / 100); | ||
25040 | }); | ||
25003 | 25041 | ||
25004 | addFormatToken('z', 0, 0, 'zoneAbbr'); | 25042 | addFormatToken(0, ['SS', 2], 0, function () { |
25005 | addFormatToken('zz', 0, 0, 'zoneName'); | 25043 | return ~~(this.millisecond() / 10); |
25044 | }); | ||
25006 | 25045 | ||
25007 | // MOMENTS | 25046 | addFormatToken(0, ['SSS', 3], 0, 'millisecond'); |
25047 | addFormatToken(0, ['SSSS', 4], 0, function () { | ||
25048 | return this.millisecond() * 10; | ||
25049 | }); | ||
25050 | addFormatToken(0, ['SSSSS', 5], 0, function () { | ||
25051 | return this.millisecond() * 100; | ||
25052 | }); | ||
25053 | addFormatToken(0, ['SSSSSS', 6], 0, function () { | ||
25054 | return this.millisecond() * 1000; | ||
25055 | }); | ||
25056 | addFormatToken(0, ['SSSSSSS', 7], 0, function () { | ||
25057 | return this.millisecond() * 10000; | ||
25058 | }); | ||
25059 | addFormatToken(0, ['SSSSSSSS', 8], 0, function () { | ||
25060 | return this.millisecond() * 100000; | ||
25061 | }); | ||
25062 | addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { | ||
25063 | return this.millisecond() * 1000000; | ||
25064 | }); | ||
25008 | 25065 | ||
25009 | function getZoneAbbr () { | ||
25010 | return this._isUTC ? 'UTC' : ''; | ||
25011 | } | ||
25012 | 25066 | ||
25013 | function getZoneName () { | 25067 | // ALIASES |
25014 | return this._isUTC ? 'Coordinated Universal Time' : ''; | ||
25015 | } | ||
25016 | 25068 | ||
25017 | var momentPrototype__proto = Moment.prototype; | 25069 | addUnitAlias('millisecond', 'ms'); |
25018 | |||
25019 | momentPrototype__proto.add = add_subtract__add; | ||
25020 | momentPrototype__proto.calendar = moment_calendar__calendar; | ||
25021 | momentPrototype__proto.clone = clone; | ||
25022 | momentPrototype__proto.diff = diff; | ||
25023 | momentPrototype__proto.endOf = endOf; | ||
25024 | momentPrototype__proto.format = format; | ||
25025 | momentPrototype__proto.from = from; | ||
25026 | momentPrototype__proto.fromNow = fromNow; | ||
25027 | momentPrototype__proto.to = to; | ||
25028 | momentPrototype__proto.toNow = toNow; | ||
25029 | momentPrototype__proto.get = stringGet; | ||
25030 | momentPrototype__proto.invalidAt = invalidAt; | ||
25031 | momentPrototype__proto.isAfter = isAfter; | ||
25032 | momentPrototype__proto.isBefore = isBefore; | ||
25033 | momentPrototype__proto.isBetween = isBetween; | ||
25034 | momentPrototype__proto.isSame = isSame; | ||
25035 | momentPrototype__proto.isSameOrAfter = isSameOrAfter; | ||
25036 | momentPrototype__proto.isSameOrBefore = isSameOrBefore; | ||
25037 | momentPrototype__proto.isValid = moment_valid__isValid; | ||
25038 | momentPrototype__proto.lang = lang; | ||
25039 | momentPrototype__proto.locale = locale; | ||
25040 | momentPrototype__proto.localeData = localeData; | ||
25041 | momentPrototype__proto.max = prototypeMax; | ||
25042 | momentPrototype__proto.min = prototypeMin; | ||
25043 | momentPrototype__proto.parsingFlags = parsingFlags; | ||
25044 | momentPrototype__proto.set = stringSet; | ||
25045 | momentPrototype__proto.startOf = startOf; | ||
25046 | momentPrototype__proto.subtract = add_subtract__subtract; | ||
25047 | momentPrototype__proto.toArray = toArray; | ||
25048 | momentPrototype__proto.toObject = toObject; | ||
25049 | momentPrototype__proto.toDate = toDate; | ||
25050 | momentPrototype__proto.toISOString = moment_format__toISOString; | ||
25051 | momentPrototype__proto.toJSON = toJSON; | ||
25052 | momentPrototype__proto.toString = toString; | ||
25053 | momentPrototype__proto.unix = unix; | ||
25054 | momentPrototype__proto.valueOf = to_type__valueOf; | ||
25055 | momentPrototype__proto.creationData = creationData; | ||
25056 | 25070 | ||
25057 | // Year | 25071 | // PRIORITY |
25058 | momentPrototype__proto.year = getSetYear; | ||
25059 | momentPrototype__proto.isLeapYear = getIsLeapYear; | ||
25060 | 25072 | ||
25061 | // Week Year | 25073 | addUnitPriority('millisecond', 16); |
25062 | momentPrototype__proto.weekYear = getSetWeekYear; | ||
25063 | momentPrototype__proto.isoWeekYear = getSetISOWeekYear; | ||
25064 | 25074 | ||
25065 | // Quarter | 25075 | // PARSING |
25066 | momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; | ||
25067 | 25076 | ||
25068 | // Month | 25077 | addRegexToken('S', match1to3, match1); |
25069 | momentPrototype__proto.month = getSetMonth; | 25078 | addRegexToken('SS', match1to3, match2); |
25070 | momentPrototype__proto.daysInMonth = getDaysInMonth; | 25079 | addRegexToken('SSS', match1to3, match3); |
25071 | 25080 | ||
25072 | // Week | 25081 | var token; |
25073 | momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; | 25082 | for (token = 'SSSS'; token.length <= 9; token += 'S') { |
25074 | momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; | 25083 | addRegexToken(token, matchUnsigned); |
25075 | momentPrototype__proto.weeksInYear = getWeeksInYear; | 25084 | } |
25076 | momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; | ||
25077 | |||
25078 | // Day | ||
25079 | momentPrototype__proto.date = getSetDayOfMonth; | ||
25080 | momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; | ||
25081 | momentPrototype__proto.weekday = getSetLocaleDayOfWeek; | ||
25082 | momentPrototype__proto.isoWeekday = getSetISODayOfWeek; | ||
25083 | momentPrototype__proto.dayOfYear = getSetDayOfYear; | ||
25084 | |||
25085 | // Hour | ||
25086 | momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; | ||
25087 | |||
25088 | // Minute | ||
25089 | momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; | ||
25090 | |||
25091 | // Second | ||
25092 | momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; | ||
25093 | |||
25094 | // Millisecond | ||
25095 | momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; | ||
25096 | |||
25097 | // Offset | ||
25098 | momentPrototype__proto.utcOffset = getSetOffset; | ||
25099 | momentPrototype__proto.utc = setOffsetToUTC; | ||
25100 | momentPrototype__proto.local = setOffsetToLocal; | ||
25101 | momentPrototype__proto.parseZone = setOffsetToParsedOffset; | ||
25102 | momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; | ||
25103 | momentPrototype__proto.isDST = isDaylightSavingTime; | ||
25104 | momentPrototype__proto.isLocal = isLocal; | ||
25105 | momentPrototype__proto.isUtcOffset = isUtcOffset; | ||
25106 | momentPrototype__proto.isUtc = isUtc; | ||
25107 | momentPrototype__proto.isUTC = isUtc; | ||
25108 | |||
25109 | // Timezone | ||
25110 | momentPrototype__proto.zoneAbbr = getZoneAbbr; | ||
25111 | momentPrototype__proto.zoneName = getZoneName; | ||
25112 | |||
25113 | // Deprecations | ||
25114 | momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); | ||
25115 | momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); | ||
25116 | momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); | ||
25117 | momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); | ||
25118 | momentPrototype__proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); | ||
25119 | |||
25120 | var momentPrototype = momentPrototype__proto; | ||
25121 | |||
25122 | function moment__createUnix (input) { | ||
25123 | return local__createLocal(input * 1000); | ||
25124 | } | ||
25125 | |||
25126 | function moment__createInZone () { | ||
25127 | return local__createLocal.apply(null, arguments).parseZone(); | ||
25128 | } | ||
25129 | |||
25130 | function preParsePostFormat (string) { | ||
25131 | return string; | ||
25132 | } | ||
25133 | |||
25134 | var prototype__proto = Locale.prototype; | ||
25135 | |||
25136 | prototype__proto.calendar = locale_calendar__calendar; | ||
25137 | prototype__proto.longDateFormat = longDateFormat; | ||
25138 | prototype__proto.invalidDate = invalidDate; | ||
25139 | prototype__proto.ordinal = ordinal; | ||
25140 | prototype__proto.preparse = preParsePostFormat; | ||
25141 | prototype__proto.postformat = preParsePostFormat; | ||
25142 | prototype__proto.relativeTime = relative__relativeTime; | ||
25143 | prototype__proto.pastFuture = pastFuture; | ||
25144 | prototype__proto.set = locale_set__set; | ||
25145 | |||
25146 | // Month | ||
25147 | prototype__proto.months = localeMonths; | ||
25148 | prototype__proto.monthsShort = localeMonthsShort; | ||
25149 | prototype__proto.monthsParse = localeMonthsParse; | ||
25150 | prototype__proto.monthsRegex = monthsRegex; | ||
25151 | prototype__proto.monthsShortRegex = monthsShortRegex; | ||
25152 | |||
25153 | // Week | ||
25154 | prototype__proto.week = localeWeek; | ||
25155 | prototype__proto.firstDayOfYear = localeFirstDayOfYear; | ||
25156 | prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; | ||
25157 | |||
25158 | // Day of Week | ||
25159 | prototype__proto.weekdays = localeWeekdays; | ||
25160 | prototype__proto.weekdaysMin = localeWeekdaysMin; | ||
25161 | prototype__proto.weekdaysShort = localeWeekdaysShort; | ||
25162 | prototype__proto.weekdaysParse = localeWeekdaysParse; | ||
25163 | |||
25164 | prototype__proto.weekdaysRegex = weekdaysRegex; | ||
25165 | prototype__proto.weekdaysShortRegex = weekdaysShortRegex; | ||
25166 | prototype__proto.weekdaysMinRegex = weekdaysMinRegex; | ||
25167 | |||
25168 | // Hours | ||
25169 | prototype__proto.isPM = localeIsPM; | ||
25170 | prototype__proto.meridiem = localeMeridiem; | ||
25171 | |||
25172 | function lists__get (format, index, field, setter) { | ||
25173 | var locale = locale_locales__getLocale(); | ||
25174 | var utc = create_utc__createUTC().set(setter, index); | ||
25175 | return locale[field](utc, format); | ||
25176 | } | ||
25177 | 25085 | ||
25178 | function listMonthsImpl (format, index, field) { | 25086 | function parseMs(input, array) { |
25179 | if (typeof format === 'number') { | 25087 | array[MILLISECOND] = toInt(('0.' + input) * 1000); |
25180 | index = format; | 25088 | } |
25181 | format = undefined; | ||
25182 | } | ||
25183 | 25089 | ||
25184 | format = format || ''; | 25090 | for (token = 'S'; token.length <= 9; token += 'S') { |
25091 | addParseToken(token, parseMs); | ||
25092 | } | ||
25093 | // MOMENTS | ||
25185 | 25094 | ||
25186 | if (index != null) { | 25095 | var getSetMillisecond = makeGetSet('Milliseconds', false); |
25187 | return lists__get(format, index, field, 'month'); | ||
25188 | } | ||
25189 | 25096 | ||
25190 | var i; | 25097 | // FORMATTING |
25191 | var out = []; | ||
25192 | for (i = 0; i < 12; i++) { | ||
25193 | out[i] = lists__get(format, i, field, 'month'); | ||
25194 | } | ||
25195 | return out; | ||
25196 | } | ||
25197 | |||
25198 | // () | ||
25199 | // (5) | ||
25200 | // (fmt, 5) | ||
25201 | // (fmt) | ||
25202 | // (true) | ||
25203 | // (true, 5) | ||
25204 | // (true, fmt, 5) | ||
25205 | // (true, fmt) | ||
25206 | function listWeekdaysImpl (localeSorted, format, index, field) { | ||
25207 | if (typeof localeSorted === 'boolean') { | ||
25208 | if (typeof format === 'number') { | ||
25209 | index = format; | ||
25210 | format = undefined; | ||
25211 | } | ||
25212 | 25098 | ||
25213 | format = format || ''; | 25099 | addFormatToken('z', 0, 0, 'zoneAbbr'); |
25214 | } else { | 25100 | addFormatToken('zz', 0, 0, 'zoneName'); |
25215 | format = localeSorted; | ||
25216 | index = format; | ||
25217 | localeSorted = false; | ||
25218 | 25101 | ||
25219 | if (typeof format === 'number') { | 25102 | // MOMENTS |
25220 | index = format; | ||
25221 | format = undefined; | ||
25222 | } | ||
25223 | 25103 | ||
25224 | format = format || ''; | 25104 | function getZoneAbbr () { |
25225 | } | 25105 | return this._isUTC ? 'UTC' : ''; |
25106 | } | ||
25226 | 25107 | ||
25227 | var locale = locale_locales__getLocale(), | 25108 | function getZoneName () { |
25228 | shift = localeSorted ? locale._week.dow : 0; | 25109 | return this._isUTC ? 'Coordinated Universal Time' : ''; |
25110 | } | ||
25229 | 25111 | ||
25230 | if (index != null) { | 25112 | var proto = Moment.prototype; |
25231 | return lists__get(format, (index + shift) % 7, field, 'day'); | 25113 | |
25232 | } | 25114 | proto.add = add; |
25115 | proto.calendar = calendar$1; | ||
25116 | proto.clone = clone; | ||
25117 | proto.diff = diff; | ||
25118 | proto.endOf = endOf; | ||
25119 | proto.format = format; | ||
25120 | proto.from = from; | ||
25121 | proto.fromNow = fromNow; | ||
25122 | proto.to = to; | ||
25123 | proto.toNow = toNow; | ||
25124 | proto.get = stringGet; | ||
25125 | proto.invalidAt = invalidAt; | ||
25126 | proto.isAfter = isAfter; | ||
25127 | proto.isBefore = isBefore; | ||
25128 | proto.isBetween = isBetween; | ||
25129 | proto.isSame = isSame; | ||
25130 | proto.isSameOrAfter = isSameOrAfter; | ||
25131 | proto.isSameOrBefore = isSameOrBefore; | ||
25132 | proto.isValid = isValid$1; | ||
25133 | proto.lang = lang; | ||
25134 | proto.locale = locale; | ||
25135 | proto.localeData = localeData; | ||
25136 | proto.max = prototypeMax; | ||
25137 | proto.min = prototypeMin; | ||
25138 | proto.parsingFlags = parsingFlags; | ||
25139 | proto.set = stringSet; | ||
25140 | proto.startOf = startOf; | ||
25141 | proto.subtract = subtract; | ||
25142 | proto.toArray = toArray; | ||
25143 | proto.toObject = toObject; | ||
25144 | proto.toDate = toDate; | ||
25145 | proto.toISOString = toISOString; | ||
25146 | proto.inspect = inspect; | ||
25147 | proto.toJSON = toJSON; | ||
25148 | proto.toString = toString; | ||
25149 | proto.unix = unix; | ||
25150 | proto.valueOf = valueOf; | ||
25151 | proto.creationData = creationData; | ||
25233 | 25152 | ||
25234 | var i; | 25153 | // Year |
25235 | var out = []; | 25154 | proto.year = getSetYear; |
25236 | for (i = 0; i < 7; i++) { | 25155 | proto.isLeapYear = getIsLeapYear; |
25237 | out[i] = lists__get(format, (i + shift) % 7, field, 'day'); | 25156 | |
25238 | } | 25157 | // Week Year |
25239 | return out; | 25158 | proto.weekYear = getSetWeekYear; |
25240 | } | 25159 | proto.isoWeekYear = getSetISOWeekYear; |
25160 | |||
25161 | // Quarter | ||
25162 | proto.quarter = proto.quarters = getSetQuarter; | ||
25241 | 25163 | ||
25242 | function lists__listMonths (format, index) { | 25164 | // Month |
25243 | return listMonthsImpl(format, index, 'months'); | 25165 | proto.month = getSetMonth; |
25166 | proto.daysInMonth = getDaysInMonth; | ||
25167 | |||
25168 | // Week | ||
25169 | proto.week = proto.weeks = getSetWeek; | ||
25170 | proto.isoWeek = proto.isoWeeks = getSetISOWeek; | ||
25171 | proto.weeksInYear = getWeeksInYear; | ||
25172 | proto.isoWeeksInYear = getISOWeeksInYear; | ||
25173 | |||
25174 | // Day | ||
25175 | proto.date = getSetDayOfMonth; | ||
25176 | proto.day = proto.days = getSetDayOfWeek; | ||
25177 | proto.weekday = getSetLocaleDayOfWeek; | ||
25178 | proto.isoWeekday = getSetISODayOfWeek; | ||
25179 | proto.dayOfYear = getSetDayOfYear; | ||
25180 | |||
25181 | // Hour | ||
25182 | proto.hour = proto.hours = getSetHour; | ||
25183 | |||
25184 | // Minute | ||
25185 | proto.minute = proto.minutes = getSetMinute; | ||
25186 | |||
25187 | // Second | ||
25188 | proto.second = proto.seconds = getSetSecond; | ||
25189 | |||
25190 | // Millisecond | ||
25191 | proto.millisecond = proto.milliseconds = getSetMillisecond; | ||
25192 | |||
25193 | // Offset | ||
25194 | proto.utcOffset = getSetOffset; | ||
25195 | proto.utc = setOffsetToUTC; | ||
25196 | proto.local = setOffsetToLocal; | ||
25197 | proto.parseZone = setOffsetToParsedOffset; | ||
25198 | proto.hasAlignedHourOffset = hasAlignedHourOffset; | ||
25199 | proto.isDST = isDaylightSavingTime; | ||
25200 | proto.isLocal = isLocal; | ||
25201 | proto.isUtcOffset = isUtcOffset; | ||
25202 | proto.isUtc = isUtc; | ||
25203 | proto.isUTC = isUtc; | ||
25204 | |||
25205 | // Timezone | ||
25206 | proto.zoneAbbr = getZoneAbbr; | ||
25207 | proto.zoneName = getZoneName; | ||
25208 | |||
25209 | // Deprecations | ||
25210 | proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); | ||
25211 | proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); | ||
25212 | proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); | ||
25213 | proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); | ||
25214 | proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); | ||
25215 | |||
25216 | function createUnix (input) { | ||
25217 | return createLocal(input * 1000); | ||
25218 | } | ||
25219 | |||
25220 | function createInZone () { | ||
25221 | return createLocal.apply(null, arguments).parseZone(); | ||
25222 | } | ||
25223 | |||
25224 | function preParsePostFormat (string) { | ||
25225 | return string; | ||
25226 | } | ||
25227 | |||
25228 | var proto$1 = Locale.prototype; | ||
25229 | |||
25230 | proto$1.calendar = calendar; | ||
25231 | proto$1.longDateFormat = longDateFormat; | ||
25232 | proto$1.invalidDate = invalidDate; | ||
25233 | proto$1.ordinal = ordinal; | ||
25234 | proto$1.preparse = preParsePostFormat; | ||
25235 | proto$1.postformat = preParsePostFormat; | ||
25236 | proto$1.relativeTime = relativeTime; | ||
25237 | proto$1.pastFuture = pastFuture; | ||
25238 | proto$1.set = set; | ||
25239 | |||
25240 | // Month | ||
25241 | proto$1.months = localeMonths; | ||
25242 | proto$1.monthsShort = localeMonthsShort; | ||
25243 | proto$1.monthsParse = localeMonthsParse; | ||
25244 | proto$1.monthsRegex = monthsRegex; | ||
25245 | proto$1.monthsShortRegex = monthsShortRegex; | ||
25246 | |||
25247 | // Week | ||
25248 | proto$1.week = localeWeek; | ||
25249 | proto$1.firstDayOfYear = localeFirstDayOfYear; | ||
25250 | proto$1.firstDayOfWeek = localeFirstDayOfWeek; | ||
25251 | |||
25252 | // Day of Week | ||
25253 | proto$1.weekdays = localeWeekdays; | ||
25254 | proto$1.weekdaysMin = localeWeekdaysMin; | ||
25255 | proto$1.weekdaysShort = localeWeekdaysShort; | ||
25256 | proto$1.weekdaysParse = localeWeekdaysParse; | ||
25257 | |||
25258 | proto$1.weekdaysRegex = weekdaysRegex; | ||
25259 | proto$1.weekdaysShortRegex = weekdaysShortRegex; | ||
25260 | proto$1.weekdaysMinRegex = weekdaysMinRegex; | ||
25261 | |||
25262 | // Hours | ||
25263 | proto$1.isPM = localeIsPM; | ||
25264 | proto$1.meridiem = localeMeridiem; | ||
25265 | |||
25266 | function get$1 (format, index, field, setter) { | ||
25267 | var locale = getLocale(); | ||
25268 | var utc = createUTC().set(setter, index); | ||
25269 | return locale[field](utc, format); | ||
25270 | } | ||
25271 | |||
25272 | function listMonthsImpl (format, index, field) { | ||
25273 | if (isNumber(format)) { | ||
25274 | index = format; | ||
25275 | format = undefined; | ||
25244 | } | 25276 | } |
25245 | 25277 | ||
25246 | function lists__listMonthsShort (format, index) { | 25278 | format = format || ''; |
25247 | return listMonthsImpl(format, index, 'monthsShort'); | ||
25248 | } | ||
25249 | 25279 | ||
25250 | function lists__listWeekdays (localeSorted, format, index) { | 25280 | if (index != null) { |
25251 | return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); | 25281 | return get$1(format, index, field, 'month'); |
25252 | } | 25282 | } |
25253 | 25283 | ||
25254 | function lists__listWeekdaysShort (localeSorted, format, index) { | 25284 | var i; |
25255 | return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); | 25285 | var out = []; |
25286 | for (i = 0; i < 12; i++) { | ||
25287 | out[i] = get$1(format, i, field, 'month'); | ||
25256 | } | 25288 | } |
25289 | return out; | ||
25290 | } | ||
25291 | |||
25292 | // () | ||
25293 | // (5) | ||
25294 | // (fmt, 5) | ||
25295 | // (fmt) | ||
25296 | // (true) | ||
25297 | // (true, 5) | ||
25298 | // (true, fmt, 5) | ||
25299 | // (true, fmt) | ||
25300 | function listWeekdaysImpl (localeSorted, format, index, field) { | ||
25301 | if (typeof localeSorted === 'boolean') { | ||
25302 | if (isNumber(format)) { | ||
25303 | index = format; | ||
25304 | format = undefined; | ||
25305 | } | ||
25257 | 25306 | ||
25258 | function lists__listWeekdaysMin (localeSorted, format, index) { | 25307 | format = format || ''; |
25259 | return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); | 25308 | } else { |
25260 | } | 25309 | format = localeSorted; |
25310 | index = format; | ||
25311 | localeSorted = false; | ||
25261 | 25312 | ||
25262 | locale_locales__getSetGlobalLocale('en', { | 25313 | if (isNumber(format)) { |
25263 | ordinalParse: /\d{1,2}(th|st|nd|rd)/, | 25314 | index = format; |
25264 | ordinal : function (number) { | 25315 | format = undefined; |
25265 | var b = number % 10, | ||
25266 | output = (toInt(number % 100 / 10) === 1) ? 'th' : | ||
25267 | (b === 1) ? 'st' : | ||
25268 | (b === 2) ? 'nd' : | ||
25269 | (b === 3) ? 'rd' : 'th'; | ||
25270 | return number + output; | ||
25271 | } | 25316 | } |
25272 | }); | ||
25273 | 25317 | ||
25274 | // Side effect imports | 25318 | format = format || ''; |
25275 | utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); | 25319 | } |
25276 | utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); | ||
25277 | 25320 | ||
25278 | var mathAbs = Math.abs; | 25321 | var locale = getLocale(), |
25322 | shift = localeSorted ? locale._week.dow : 0; | ||
25279 | 25323 | ||
25280 | function duration_abs__abs () { | 25324 | if (index != null) { |
25281 | var data = this._data; | 25325 | return get$1(format, (index + shift) % 7, field, 'day'); |
25326 | } | ||
25282 | 25327 | ||
25283 | this._milliseconds = mathAbs(this._milliseconds); | 25328 | var i; |
25284 | this._days = mathAbs(this._days); | 25329 | var out = []; |
25285 | this._months = mathAbs(this._months); | 25330 | for (i = 0; i < 7; i++) { |
25331 | out[i] = get$1(format, (i + shift) % 7, field, 'day'); | ||
25332 | } | ||
25333 | return out; | ||
25334 | } | ||
25286 | 25335 | ||
25287 | data.milliseconds = mathAbs(data.milliseconds); | 25336 | function listMonths (format, index) { |
25288 | data.seconds = mathAbs(data.seconds); | 25337 | return listMonthsImpl(format, index, 'months'); |
25289 | data.minutes = mathAbs(data.minutes); | 25338 | } |
25290 | data.hours = mathAbs(data.hours); | ||
25291 | data.months = mathAbs(data.months); | ||
25292 | data.years = mathAbs(data.years); | ||
25293 | 25339 | ||
25294 | return this; | 25340 | function listMonthsShort (format, index) { |
25295 | } | 25341 | return listMonthsImpl(format, index, 'monthsShort'); |
25342 | } | ||
25296 | 25343 | ||
25297 | function duration_add_subtract__addSubtract (duration, input, value, direction) { | 25344 | function listWeekdays (localeSorted, format, index) { |
25298 | var other = create__createDuration(input, value); | 25345 | return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); |
25346 | } | ||
25299 | 25347 | ||
25300 | duration._milliseconds += direction * other._milliseconds; | 25348 | function listWeekdaysShort (localeSorted, format, index) { |
25301 | duration._days += direction * other._days; | 25349 | return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); |
25302 | duration._months += direction * other._months; | 25350 | } |
25303 | 25351 | ||
25304 | return duration._bubble(); | 25352 | function listWeekdaysMin (localeSorted, format, index) { |
25305 | } | 25353 | return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); |
25354 | } | ||
25306 | 25355 | ||
25307 | // supports only 2.0-style add(1, 's') or add(duration) | 25356 | getSetGlobalLocale('en', { |
25308 | function duration_add_subtract__add (input, value) { | 25357 | ordinalParse: /\d{1,2}(th|st|nd|rd)/, |
25309 | return duration_add_subtract__addSubtract(this, input, value, 1); | 25358 | ordinal : function (number) { |
25359 | var b = number % 10, | ||
25360 | output = (toInt(number % 100 / 10) === 1) ? 'th' : | ||
25361 | (b === 1) ? 'st' : | ||
25362 | (b === 2) ? 'nd' : | ||
25363 | (b === 3) ? 'rd' : 'th'; | ||
25364 | return number + output; | ||
25310 | } | 25365 | } |
25366 | }); | ||
25311 | 25367 | ||
25312 | // supports only 2.0-style subtract(1, 's') or subtract(duration) | 25368 | // Side effect imports |
25313 | function duration_add_subtract__subtract (input, value) { | 25369 | hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); |
25314 | return duration_add_subtract__addSubtract(this, input, value, -1); | 25370 | hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); |
25315 | } | ||
25316 | 25371 | ||
25317 | function absCeil (number) { | 25372 | var mathAbs = Math.abs; |
25318 | if (number < 0) { | ||
25319 | return Math.floor(number); | ||
25320 | } else { | ||
25321 | return Math.ceil(number); | ||
25322 | } | ||
25323 | } | ||
25324 | 25373 | ||
25325 | function bubble () { | 25374 | function abs () { |
25326 | var milliseconds = this._milliseconds; | 25375 | var data = this._data; |
25327 | var days = this._days; | ||
25328 | var months = this._months; | ||
25329 | var data = this._data; | ||
25330 | var seconds, minutes, hours, years, monthsFromDays; | ||
25331 | |||
25332 | // if we have a mix of positive and negative values, bubble down first | ||
25333 | // check: https://github.com/moment/moment/issues/2166 | ||
25334 | if (!((milliseconds >= 0 && days >= 0 && months >= 0) || | ||
25335 | (milliseconds <= 0 && days <= 0 && months <= 0))) { | ||
25336 | milliseconds += absCeil(monthsToDays(months) + days) * 864e5; | ||
25337 | days = 0; | ||
25338 | months = 0; | ||
25339 | } | ||
25340 | 25376 | ||
25341 | // The following code bubbles up values, see the tests for | 25377 | this._milliseconds = mathAbs(this._milliseconds); |
25342 | // examples of what that means. | 25378 | this._days = mathAbs(this._days); |
25343 | data.milliseconds = milliseconds % 1000; | 25379 | this._months = mathAbs(this._months); |
25344 | 25380 | ||
25345 | seconds = absFloor(milliseconds / 1000); | 25381 | data.milliseconds = mathAbs(data.milliseconds); |
25346 | data.seconds = seconds % 60; | 25382 | data.seconds = mathAbs(data.seconds); |
25383 | data.minutes = mathAbs(data.minutes); | ||
25384 | data.hours = mathAbs(data.hours); | ||
25385 | data.months = mathAbs(data.months); | ||
25386 | data.years = mathAbs(data.years); | ||
25347 | 25387 | ||
25348 | minutes = absFloor(seconds / 60); | 25388 | return this; |
25349 | data.minutes = minutes % 60; | 25389 | } |
25350 | 25390 | ||
25351 | hours = absFloor(minutes / 60); | 25391 | function addSubtract$1 (duration, input, value, direction) { |
25352 | data.hours = hours % 24; | 25392 | var other = createDuration(input, value); |
25353 | 25393 | ||
25354 | days += absFloor(hours / 24); | 25394 | duration._milliseconds += direction * other._milliseconds; |
25395 | duration._days += direction * other._days; | ||
25396 | duration._months += direction * other._months; | ||
25355 | 25397 | ||
25356 | // convert days to months | 25398 | return duration._bubble(); |
25357 | monthsFromDays = absFloor(daysToMonths(days)); | 25399 | } |
25358 | months += monthsFromDays; | ||
25359 | days -= absCeil(monthsToDays(monthsFromDays)); | ||
25360 | 25400 | ||
25361 | // 12 months -> 1 year | 25401 | // supports only 2.0-style add(1, 's') or add(duration) |
25362 | years = absFloor(months / 12); | 25402 | function add$1 (input, value) { |
25363 | months %= 12; | 25403 | return addSubtract$1(this, input, value, 1); |
25404 | } | ||
25364 | 25405 | ||
25365 | data.days = days; | 25406 | // supports only 2.0-style subtract(1, 's') or subtract(duration) |
25366 | data.months = months; | 25407 | function subtract$1 (input, value) { |
25367 | data.years = years; | 25408 | return addSubtract$1(this, input, value, -1); |
25409 | } | ||
25368 | 25410 | ||
25369 | return this; | 25411 | function absCeil (number) { |
25412 | if (number < 0) { | ||
25413 | return Math.floor(number); | ||
25414 | } else { | ||
25415 | return Math.ceil(number); | ||
25370 | } | 25416 | } |
25417 | } | ||
25371 | 25418 | ||
25372 | function daysToMonths (days) { | 25419 | function bubble () { |
25373 | // 400 years have 146097 days (taking into account leap year rules) | 25420 | var milliseconds = this._milliseconds; |
25374 | // 400 years have 12 months === 4800 | 25421 | var days = this._days; |
25375 | return days * 4800 / 146097; | 25422 | var months = this._months; |
25376 | } | 25423 | var data = this._data; |
25424 | var seconds, minutes, hours, years, monthsFromDays; | ||
25377 | 25425 | ||
25378 | function monthsToDays (months) { | 25426 | // if we have a mix of positive and negative values, bubble down first |
25379 | // the reverse of daysToMonths | 25427 | // check: https://github.com/moment/moment/issues/2166 |
25380 | return months * 146097 / 4800; | 25428 | if (!((milliseconds >= 0 && days >= 0 && months >= 0) || |
25429 | (milliseconds <= 0 && days <= 0 && months <= 0))) { | ||
25430 | milliseconds += absCeil(monthsToDays(months) + days) * 864e5; | ||
25431 | days = 0; | ||
25432 | months = 0; | ||
25381 | } | 25433 | } |
25382 | 25434 | ||
25383 | function as (units) { | 25435 | // The following code bubbles up values, see the tests for |
25384 | var days; | 25436 | // examples of what that means. |
25385 | var months; | 25437 | data.milliseconds = milliseconds % 1000; |
25386 | var milliseconds = this._milliseconds; | ||
25387 | 25438 | ||
25388 | units = normalizeUnits(units); | 25439 | seconds = absFloor(milliseconds / 1000); |
25440 | data.seconds = seconds % 60; | ||
25389 | 25441 | ||
25390 | if (units === 'month' || units === 'year') { | 25442 | minutes = absFloor(seconds / 60); |
25391 | days = this._days + milliseconds / 864e5; | 25443 | data.minutes = minutes % 60; |
25392 | months = this._months + daysToMonths(days); | ||
25393 | return units === 'month' ? months : months / 12; | ||
25394 | } else { | ||
25395 | // handle milliseconds separately because of floating point math errors (issue #1867) | ||
25396 | days = this._days + Math.round(monthsToDays(this._months)); | ||
25397 | switch (units) { | ||
25398 | case 'week' : return days / 7 + milliseconds / 6048e5; | ||
25399 | case 'day' : return days + milliseconds / 864e5; | ||
25400 | case 'hour' : return days * 24 + milliseconds / 36e5; | ||
25401 | case 'minute' : return days * 1440 + milliseconds / 6e4; | ||
25402 | case 'second' : return days * 86400 + milliseconds / 1000; | ||
25403 | // Math.floor prevents floating point math errors here | ||
25404 | case 'millisecond': return Math.floor(days * 864e5) + milliseconds; | ||
25405 | default: throw new Error('Unknown unit ' + units); | ||
25406 | } | ||
25407 | } | ||
25408 | } | ||
25409 | 25444 | ||
25410 | // TODO: Use this.as('ms')? | 25445 | hours = absFloor(minutes / 60); |
25411 | function duration_as__valueOf () { | 25446 | data.hours = hours % 24; |
25412 | return ( | ||
25413 | this._milliseconds + | ||
25414 | this._days * 864e5 + | ||
25415 | (this._months % 12) * 2592e6 + | ||
25416 | toInt(this._months / 12) * 31536e6 | ||
25417 | ); | ||
25418 | } | ||
25419 | 25447 | ||
25420 | function makeAs (alias) { | 25448 | days += absFloor(hours / 24); |
25421 | return function () { | ||
25422 | return this.as(alias); | ||
25423 | }; | ||
25424 | } | ||
25425 | 25449 | ||
25426 | var asMilliseconds = makeAs('ms'); | 25450 | // convert days to months |
25427 | var asSeconds = makeAs('s'); | 25451 | monthsFromDays = absFloor(daysToMonths(days)); |
25428 | var asMinutes = makeAs('m'); | 25452 | months += monthsFromDays; |
25429 | var asHours = makeAs('h'); | 25453 | days -= absCeil(monthsToDays(monthsFromDays)); |
25430 | var asDays = makeAs('d'); | ||
25431 | var asWeeks = makeAs('w'); | ||
25432 | var asMonths = makeAs('M'); | ||
25433 | var asYears = makeAs('y'); | ||
25434 | 25454 | ||
25435 | function duration_get__get (units) { | 25455 | // 12 months -> 1 year |
25436 | units = normalizeUnits(units); | 25456 | years = absFloor(months / 12); |
25437 | return this[units + 's'](); | 25457 | months %= 12; |
25438 | } | ||
25439 | 25458 | ||
25440 | function makeGetter(name) { | 25459 | data.days = days; |
25441 | return function () { | 25460 | data.months = months; |
25442 | return this._data[name]; | 25461 | data.years = years; |
25443 | }; | ||
25444 | } | ||
25445 | 25462 | ||
25446 | var milliseconds = makeGetter('milliseconds'); | 25463 | return this; |
25447 | var seconds = makeGetter('seconds'); | 25464 | } |
25448 | var minutes = makeGetter('minutes'); | ||
25449 | var hours = makeGetter('hours'); | ||
25450 | var days = makeGetter('days'); | ||
25451 | var months = makeGetter('months'); | ||
25452 | var years = makeGetter('years'); | ||
25453 | 25465 | ||
25454 | function weeks () { | 25466 | function daysToMonths (days) { |
25455 | return absFloor(this.days() / 7); | 25467 | // 400 years have 146097 days (taking into account leap year rules) |
25456 | } | 25468 | // 400 years have 12 months === 4800 |
25469 | return days * 4800 / 146097; | ||
25470 | } | ||
25457 | 25471 | ||
25458 | var round = Math.round; | 25472 | function monthsToDays (months) { |
25459 | var thresholds = { | 25473 | // the reverse of daysToMonths |
25460 | s: 45, // seconds to minute | 25474 | return months * 146097 / 4800; |
25461 | m: 45, // minutes to hour | 25475 | } |
25462 | h: 22, // hours to day | ||
25463 | d: 26, // days to month | ||
25464 | M: 11 // months to year | ||
25465 | }; | ||
25466 | 25476 | ||
25467 | // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize | 25477 | function as (units) { |
25468 | function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { | 25478 | var days; |
25469 | return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); | 25479 | var months; |
25470 | } | 25480 | var milliseconds = this._milliseconds; |
25471 | |||
25472 | function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { | ||
25473 | var duration = create__createDuration(posNegDuration).abs(); | ||
25474 | var seconds = round(duration.as('s')); | ||
25475 | var minutes = round(duration.as('m')); | ||
25476 | var hours = round(duration.as('h')); | ||
25477 | var days = round(duration.as('d')); | ||
25478 | var months = round(duration.as('M')); | ||
25479 | var years = round(duration.as('y')); | ||
25480 | |||
25481 | var a = seconds < thresholds.s && ['s', seconds] || | ||
25482 | minutes <= 1 && ['m'] || | ||
25483 | minutes < thresholds.m && ['mm', minutes] || | ||
25484 | hours <= 1 && ['h'] || | ||
25485 | hours < thresholds.h && ['hh', hours] || | ||
25486 | days <= 1 && ['d'] || | ||
25487 | days < thresholds.d && ['dd', days] || | ||
25488 | months <= 1 && ['M'] || | ||
25489 | months < thresholds.M && ['MM', months] || | ||
25490 | years <= 1 && ['y'] || ['yy', years]; | ||
25491 | |||
25492 | a[2] = withoutSuffix; | ||
25493 | a[3] = +posNegDuration > 0; | ||
25494 | a[4] = locale; | ||
25495 | return substituteTimeAgo.apply(null, a); | ||
25496 | } | ||
25497 | |||
25498 | // This function allows you to set the rounding function for relative time strings | ||
25499 | function duration_humanize__getSetRelativeTimeRounding (roundingFunction) { | ||
25500 | if (roundingFunction === undefined) { | ||
25501 | return round; | ||
25502 | } | ||
25503 | if (typeof(roundingFunction) === 'function') { | ||
25504 | round = roundingFunction; | ||
25505 | return true; | ||
25506 | } | ||
25507 | return false; | ||
25508 | } | ||
25509 | 25481 | ||
25510 | // This function allows you to set a threshold for relative time strings | 25482 | units = normalizeUnits(units); |
25511 | function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { | 25483 | |
25512 | if (thresholds[threshold] === undefined) { | 25484 | if (units === 'month' || units === 'year') { |
25513 | return false; | 25485 | days = this._days + milliseconds / 864e5; |
25514 | } | 25486 | months = this._months + daysToMonths(days); |
25515 | if (limit === undefined) { | 25487 | return units === 'month' ? months : months / 12; |
25516 | return thresholds[threshold]; | 25488 | } else { |
25489 | // handle milliseconds separately because of floating point math errors (issue #1867) | ||
25490 | days = this._days + Math.round(monthsToDays(this._months)); | ||
25491 | switch (units) { | ||
25492 | case 'week' : return days / 7 + milliseconds / 6048e5; | ||
25493 | case 'day' : return days + milliseconds / 864e5; | ||
25494 | case 'hour' : return days * 24 + milliseconds / 36e5; | ||
25495 | case 'minute' : return days * 1440 + milliseconds / 6e4; | ||
25496 | case 'second' : return days * 86400 + milliseconds / 1000; | ||
25497 | // Math.floor prevents floating point math errors here | ||
25498 | case 'millisecond': return Math.floor(days * 864e5) + milliseconds; | ||
25499 | default: throw new Error('Unknown unit ' + units); | ||
25517 | } | 25500 | } |
25518 | thresholds[threshold] = limit; | ||
25519 | return true; | ||
25520 | } | 25501 | } |
25502 | } | ||
25521 | 25503 | ||
25522 | function humanize (withSuffix) { | 25504 | // TODO: Use this.as('ms')? |
25523 | var locale = this.localeData(); | 25505 | function valueOf$1 () { |
25524 | var output = duration_humanize__relativeTime(this, !withSuffix, locale); | 25506 | return ( |
25507 | this._milliseconds + | ||
25508 | this._days * 864e5 + | ||
25509 | (this._months % 12) * 2592e6 + | ||
25510 | toInt(this._months / 12) * 31536e6 | ||
25511 | ); | ||
25512 | } | ||
25525 | 25513 | ||
25526 | if (withSuffix) { | 25514 | function makeAs (alias) { |
25527 | output = locale.pastFuture(+this, output); | 25515 | return function () { |
25528 | } | 25516 | return this.as(alias); |
25517 | }; | ||
25518 | } | ||
25529 | 25519 | ||
25530 | return locale.postformat(output); | 25520 | var asMilliseconds = makeAs('ms'); |
25531 | } | 25521 | var asSeconds = makeAs('s'); |
25532 | 25522 | var asMinutes = makeAs('m'); | |
25533 | var iso_string__abs = Math.abs; | 25523 | var asHours = makeAs('h'); |
25534 | 25524 | var asDays = makeAs('d'); | |
25535 | function iso_string__toISOString() { | 25525 | var asWeeks = makeAs('w'); |
25536 | // for ISO strings we do not use the normal bubbling rules: | 25526 | var asMonths = makeAs('M'); |
25537 | // * milliseconds bubble up until they become hours | 25527 | var asYears = makeAs('y'); |
25538 | // * days do not bubble at all | ||
25539 | // * months bubble up until they become years | ||
25540 | // This is because there is no context-free conversion between hours and days | ||
25541 | // (think of clock changes) | ||
25542 | // and also not between days and months (28-31 days per month) | ||
25543 | var seconds = iso_string__abs(this._milliseconds) / 1000; | ||
25544 | var days = iso_string__abs(this._days); | ||
25545 | var months = iso_string__abs(this._months); | ||
25546 | var minutes, hours, years; | ||
25547 | |||
25548 | // 3600 seconds -> 60 minutes -> 1 hour | ||
25549 | minutes = absFloor(seconds / 60); | ||
25550 | hours = absFloor(minutes / 60); | ||
25551 | seconds %= 60; | ||
25552 | minutes %= 60; | ||
25553 | |||
25554 | // 12 months -> 1 year | ||
25555 | years = absFloor(months / 12); | ||
25556 | months %= 12; | ||
25557 | |||
25558 | |||
25559 | // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js | ||
25560 | var Y = years; | ||
25561 | var M = months; | ||
25562 | var D = days; | ||
25563 | var h = hours; | ||
25564 | var m = minutes; | ||
25565 | var s = seconds; | ||
25566 | var total = this.asSeconds(); | ||
25567 | |||
25568 | if (!total) { | ||
25569 | // this is the same as C#'s (Noda) and python (isodate)... | ||
25570 | // but not other JS (goog.date) | ||
25571 | return 'P0D'; | ||
25572 | } | ||
25573 | 25528 | ||
25574 | return (total < 0 ? '-' : '') + | 25529 | function get$2 (units) { |
25575 | 'P' + | 25530 | units = normalizeUnits(units); |
25576 | (Y ? Y + 'Y' : '') + | 25531 | return this[units + 's'](); |
25577 | (M ? M + 'M' : '') + | 25532 | } |
25578 | (D ? D + 'D' : '') + | ||
25579 | ((h || m || s) ? 'T' : '') + | ||
25580 | (h ? h + 'H' : '') + | ||
25581 | (m ? m + 'M' : '') + | ||
25582 | (s ? s + 'S' : ''); | ||
25583 | } | ||
25584 | |||
25585 | var duration_prototype__proto = Duration.prototype; | ||
25586 | |||
25587 | duration_prototype__proto.abs = duration_abs__abs; | ||
25588 | duration_prototype__proto.add = duration_add_subtract__add; | ||
25589 | duration_prototype__proto.subtract = duration_add_subtract__subtract; | ||
25590 | duration_prototype__proto.as = as; | ||
25591 | duration_prototype__proto.asMilliseconds = asMilliseconds; | ||
25592 | duration_prototype__proto.asSeconds = asSeconds; | ||
25593 | duration_prototype__proto.asMinutes = asMinutes; | ||
25594 | duration_prototype__proto.asHours = asHours; | ||
25595 | duration_prototype__proto.asDays = asDays; | ||
25596 | duration_prototype__proto.asWeeks = asWeeks; | ||
25597 | duration_prototype__proto.asMonths = asMonths; | ||
25598 | duration_prototype__proto.asYears = asYears; | ||
25599 | duration_prototype__proto.valueOf = duration_as__valueOf; | ||
25600 | duration_prototype__proto._bubble = bubble; | ||
25601 | duration_prototype__proto.get = duration_get__get; | ||
25602 | duration_prototype__proto.milliseconds = milliseconds; | ||
25603 | duration_prototype__proto.seconds = seconds; | ||
25604 | duration_prototype__proto.minutes = minutes; | ||
25605 | duration_prototype__proto.hours = hours; | ||
25606 | duration_prototype__proto.days = days; | ||
25607 | duration_prototype__proto.weeks = weeks; | ||
25608 | duration_prototype__proto.months = months; | ||
25609 | duration_prototype__proto.years = years; | ||
25610 | duration_prototype__proto.humanize = humanize; | ||
25611 | duration_prototype__proto.toISOString = iso_string__toISOString; | ||
25612 | duration_prototype__proto.toString = iso_string__toISOString; | ||
25613 | duration_prototype__proto.toJSON = iso_string__toISOString; | ||
25614 | duration_prototype__proto.locale = locale; | ||
25615 | duration_prototype__proto.localeData = localeData; | ||
25616 | |||
25617 | // Deprecations | ||
25618 | duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); | ||
25619 | duration_prototype__proto.lang = lang; | ||
25620 | |||
25621 | // Side effect imports | ||
25622 | |||
25623 | // FORMATTING | ||
25624 | |||
25625 | addFormatToken('X', 0, 0, 'unix'); | ||
25626 | addFormatToken('x', 0, 0, 'valueOf'); | ||
25627 | |||
25628 | // PARSING | ||
25629 | |||
25630 | addRegexToken('x', matchSigned); | ||
25631 | addRegexToken('X', matchTimestamp); | ||
25632 | addParseToken('X', function (input, array, config) { | ||
25633 | config._d = new Date(parseFloat(input, 10) * 1000); | ||
25634 | }); | ||
25635 | addParseToken('x', function (input, array, config) { | ||
25636 | config._d = new Date(toInt(input)); | ||
25637 | }); | ||
25638 | 25533 | ||
25639 | // Side effect imports | 25534 | function makeGetter(name) { |
25535 | return function () { | ||
25536 | return this._data[name]; | ||
25537 | }; | ||
25538 | } | ||
25640 | 25539 | ||
25540 | var milliseconds = makeGetter('milliseconds'); | ||
25541 | var seconds = makeGetter('seconds'); | ||
25542 | var minutes = makeGetter('minutes'); | ||
25543 | var hours = makeGetter('hours'); | ||
25544 | var days = makeGetter('days'); | ||
25545 | var months = makeGetter('months'); | ||
25546 | var years = makeGetter('years'); | ||
25641 | 25547 | ||
25642 | utils_hooks__hooks.version = '2.14.1'; | 25548 | function weeks () { |
25549 | return absFloor(this.days() / 7); | ||
25550 | } | ||
25643 | 25551 | ||
25644 | setHookCallback(local__createLocal); | 25552 | var round = Math.round; |
25553 | var thresholds = { | ||
25554 | s: 45, // seconds to minute | ||
25555 | m: 45, // minutes to hour | ||
25556 | h: 22, // hours to day | ||
25557 | d: 26, // days to month | ||
25558 | M: 11 // months to year | ||
25559 | }; | ||
25645 | 25560 | ||
25646 | utils_hooks__hooks.fn = momentPrototype; | 25561 | // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize |
25647 | utils_hooks__hooks.min = min; | 25562 | function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { |
25648 | utils_hooks__hooks.max = max; | 25563 | return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); |
25649 | utils_hooks__hooks.now = now; | 25564 | } |
25650 | utils_hooks__hooks.utc = create_utc__createUTC; | 25565 | |
25651 | utils_hooks__hooks.unix = moment__createUnix; | 25566 | function relativeTime$1 (posNegDuration, withoutSuffix, locale) { |
25652 | utils_hooks__hooks.months = lists__listMonths; | 25567 | var duration = createDuration(posNegDuration).abs(); |
25653 | utils_hooks__hooks.isDate = isDate; | 25568 | var seconds = round(duration.as('s')); |
25654 | utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; | 25569 | var minutes = round(duration.as('m')); |
25655 | utils_hooks__hooks.invalid = valid__createInvalid; | 25570 | var hours = round(duration.as('h')); |
25656 | utils_hooks__hooks.duration = create__createDuration; | 25571 | var days = round(duration.as('d')); |
25657 | utils_hooks__hooks.isMoment = isMoment; | 25572 | var months = round(duration.as('M')); |
25658 | utils_hooks__hooks.weekdays = lists__listWeekdays; | 25573 | var years = round(duration.as('y')); |
25659 | utils_hooks__hooks.parseZone = moment__createInZone; | 25574 | |
25660 | utils_hooks__hooks.localeData = locale_locales__getLocale; | 25575 | var a = seconds < thresholds.s && ['s', seconds] || |
25661 | utils_hooks__hooks.isDuration = isDuration; | 25576 | minutes <= 1 && ['m'] || |
25662 | utils_hooks__hooks.monthsShort = lists__listMonthsShort; | 25577 | minutes < thresholds.m && ['mm', minutes] || |
25663 | utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; | 25578 | hours <= 1 && ['h'] || |
25664 | utils_hooks__hooks.defineLocale = defineLocale; | 25579 | hours < thresholds.h && ['hh', hours] || |
25665 | utils_hooks__hooks.updateLocale = updateLocale; | 25580 | days <= 1 && ['d'] || |
25666 | utils_hooks__hooks.locales = locale_locales__listLocales; | 25581 | days < thresholds.d && ['dd', days] || |
25667 | utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; | 25582 | months <= 1 && ['M'] || |
25668 | utils_hooks__hooks.normalizeUnits = normalizeUnits; | 25583 | months < thresholds.M && ['MM', months] || |
25669 | utils_hooks__hooks.relativeTimeRounding = duration_humanize__getSetRelativeTimeRounding; | 25584 | years <= 1 && ['y'] || ['yy', years]; |
25670 | utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; | 25585 | |
25671 | utils_hooks__hooks.calendarFormat = getCalendarFormat; | 25586 | a[2] = withoutSuffix; |
25672 | utils_hooks__hooks.prototype = momentPrototype; | 25587 | a[3] = +posNegDuration > 0; |
25588 | a[4] = locale; | ||
25589 | return substituteTimeAgo.apply(null, a); | ||
25590 | } | ||
25591 | |||
25592 | // This function allows you to set the rounding function for relative time strings | ||
25593 | function getSetRelativeTimeRounding (roundingFunction) { | ||
25594 | if (roundingFunction === undefined) { | ||
25595 | return round; | ||
25596 | } | ||
25597 | if (typeof(roundingFunction) === 'function') { | ||
25598 | round = roundingFunction; | ||
25599 | return true; | ||
25600 | } | ||
25601 | return false; | ||
25602 | } | ||
25673 | 25603 | ||
25674 | var _moment = utils_hooks__hooks; | 25604 | // This function allows you to set a threshold for relative time strings |
25605 | function getSetRelativeTimeThreshold (threshold, limit) { | ||
25606 | if (thresholds[threshold] === undefined) { | ||
25607 | return false; | ||
25608 | } | ||
25609 | if (limit === undefined) { | ||
25610 | return thresholds[threshold]; | ||
25611 | } | ||
25612 | thresholds[threshold] = limit; | ||
25613 | return true; | ||
25614 | } | ||
25675 | 25615 | ||
25676 | return _moment; | 25616 | function humanize (withSuffix) { |
25617 | var locale = this.localeData(); | ||
25618 | var output = relativeTime$1(this, !withSuffix, locale); | ||
25619 | |||
25620 | if (withSuffix) { | ||
25621 | output = locale.pastFuture(+this, output); | ||
25622 | } | ||
25623 | |||
25624 | return locale.postformat(output); | ||
25625 | } | ||
25626 | |||
25627 | var abs$1 = Math.abs; | ||
25628 | |||
25629 | function toISOString$1() { | ||
25630 | // for ISO strings we do not use the normal bubbling rules: | ||
25631 | // * milliseconds bubble up until they become hours | ||
25632 | // * days do not bubble at all | ||
25633 | // * months bubble up until they become years | ||
25634 | // This is because there is no context-free conversion between hours and days | ||
25635 | // (think of clock changes) | ||
25636 | // and also not between days and months (28-31 days per month) | ||
25637 | var seconds = abs$1(this._milliseconds) / 1000; | ||
25638 | var days = abs$1(this._days); | ||
25639 | var months = abs$1(this._months); | ||
25640 | var minutes, hours, years; | ||
25641 | |||
25642 | // 3600 seconds -> 60 minutes -> 1 hour | ||
25643 | minutes = absFloor(seconds / 60); | ||
25644 | hours = absFloor(minutes / 60); | ||
25645 | seconds %= 60; | ||
25646 | minutes %= 60; | ||
25647 | |||
25648 | // 12 months -> 1 year | ||
25649 | years = absFloor(months / 12); | ||
25650 | months %= 12; | ||
25651 | |||
25652 | |||
25653 | // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js | ||
25654 | var Y = years; | ||
25655 | var M = months; | ||
25656 | var D = days; | ||
25657 | var h = hours; | ||
25658 | var m = minutes; | ||
25659 | var s = seconds; | ||
25660 | var total = this.asSeconds(); | ||
25661 | |||
25662 | if (!total) { | ||
25663 | // this is the same as C#'s (Noda) and python (isodate)... | ||
25664 | // but not other JS (goog.date) | ||
25665 | return 'P0D'; | ||
25666 | } | ||
25667 | |||
25668 | return (total < 0 ? '-' : '') + | ||
25669 | 'P' + | ||
25670 | (Y ? Y + 'Y' : '') + | ||
25671 | (M ? M + 'M' : '') + | ||
25672 | (D ? D + 'D' : '') + | ||
25673 | ((h || m || s) ? 'T' : '') + | ||
25674 | (h ? h + 'H' : '') + | ||
25675 | (m ? m + 'M' : '') + | ||
25676 | (s ? s + 'S' : ''); | ||
25677 | } | ||
25678 | |||
25679 | var proto$2 = Duration.prototype; | ||
25680 | |||
25681 | proto$2.abs = abs; | ||
25682 | proto$2.add = add$1; | ||
25683 | proto$2.subtract = subtract$1; | ||
25684 | proto$2.as = as; | ||
25685 | proto$2.asMilliseconds = asMilliseconds; | ||
25686 | proto$2.asSeconds = asSeconds; | ||
25687 | proto$2.asMinutes = asMinutes; | ||
25688 | proto$2.asHours = asHours; | ||
25689 | proto$2.asDays = asDays; | ||
25690 | proto$2.asWeeks = asWeeks; | ||
25691 | proto$2.asMonths = asMonths; | ||
25692 | proto$2.asYears = asYears; | ||
25693 | proto$2.valueOf = valueOf$1; | ||
25694 | proto$2._bubble = bubble; | ||
25695 | proto$2.get = get$2; | ||
25696 | proto$2.milliseconds = milliseconds; | ||
25697 | proto$2.seconds = seconds; | ||
25698 | proto$2.minutes = minutes; | ||
25699 | proto$2.hours = hours; | ||
25700 | proto$2.days = days; | ||
25701 | proto$2.weeks = weeks; | ||
25702 | proto$2.months = months; | ||
25703 | proto$2.years = years; | ||
25704 | proto$2.humanize = humanize; | ||
25705 | proto$2.toISOString = toISOString$1; | ||
25706 | proto$2.toString = toISOString$1; | ||
25707 | proto$2.toJSON = toISOString$1; | ||
25708 | proto$2.locale = locale; | ||
25709 | proto$2.localeData = localeData; | ||
25710 | |||
25711 | // Deprecations | ||
25712 | proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); | ||
25713 | proto$2.lang = lang; | ||
25714 | |||
25715 | // Side effect imports | ||
25716 | |||
25717 | // FORMATTING | ||
25718 | |||
25719 | addFormatToken('X', 0, 0, 'unix'); | ||
25720 | addFormatToken('x', 0, 0, 'valueOf'); | ||
25721 | |||
25722 | // PARSING | ||
25723 | |||
25724 | addRegexToken('x', matchSigned); | ||
25725 | addRegexToken('X', matchTimestamp); | ||
25726 | addParseToken('X', function (input, array, config) { | ||
25727 | config._d = new Date(parseFloat(input, 10) * 1000); | ||
25728 | }); | ||
25729 | addParseToken('x', function (input, array, config) { | ||
25730 | config._d = new Date(toInt(input)); | ||
25731 | }); | ||
25677 | 25732 | ||
25678 | })); | 25733 | // Side effect imports |
25734 | |||
25735 | |||
25736 | hooks.version = '2.16.0'; | ||
25737 | |||
25738 | setHookCallback(createLocal); | ||
25739 | |||
25740 | hooks.fn = proto; | ||
25741 | hooks.min = min; | ||
25742 | hooks.max = max; | ||
25743 | hooks.now = now; | ||
25744 | hooks.utc = createUTC; | ||
25745 | hooks.unix = createUnix; | ||
25746 | hooks.months = listMonths; | ||
25747 | hooks.isDate = isDate; | ||
25748 | hooks.locale = getSetGlobalLocale; | ||
25749 | hooks.invalid = createInvalid; | ||
25750 | hooks.duration = createDuration; | ||
25751 | hooks.isMoment = isMoment; | ||
25752 | hooks.weekdays = listWeekdays; | ||
25753 | hooks.parseZone = createInZone; | ||
25754 | hooks.localeData = getLocale; | ||
25755 | hooks.isDuration = isDuration; | ||
25756 | hooks.monthsShort = listMonthsShort; | ||
25757 | hooks.weekdaysMin = listWeekdaysMin; | ||
25758 | hooks.defineLocale = defineLocale; | ||
25759 | hooks.updateLocale = updateLocale; | ||
25760 | hooks.locales = listLocales; | ||
25761 | hooks.weekdaysShort = listWeekdaysShort; | ||
25762 | hooks.normalizeUnits = normalizeUnits; | ||
25763 | hooks.relativeTimeRounding = getSetRelativeTimeRounding; | ||
25764 | hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; | ||
25765 | hooks.calendarFormat = getCalendarFormat; | ||
25766 | hooks.prototype = proto; | ||
25767 | |||
25768 | return hooks; | ||
25769 | |||
25770 | }))); | ||
25771 | |||
25679 | 25772 | ||
25680 | /***/ }, | 25773 | /***/ }, |
25681 | /* 178 */ | 25774 | /* 175 */ |
25682 | /***/ function(module, exports, __webpack_require__) { | 25775 | /***/ function(module, exports, __webpack_require__) { |
25683 | 25776 | ||
25684 | 'use strict'; | 25777 | 'use strict'; |
@@ -25687,7 +25780,7 @@ | |||
25687 | value: true | 25780 | value: true |
25688 | }); | 25781 | }); |
25689 | 25782 | ||
25690 | var _src = __webpack_require__(179); | 25783 | var _src = __webpack_require__(176); |
25691 | 25784 | ||
25692 | var _src2 = _interopRequireDefault(_src); | 25785 | var _src2 = _interopRequireDefault(_src); |
25693 | 25786 | ||
@@ -25697,7 +25790,7 @@ | |||
25697 | module.exports = exports['default']; | 25790 | module.exports = exports['default']; |
25698 | 25791 | ||
25699 | /***/ }, | 25792 | /***/ }, |
25700 | /* 179 */ | 25793 | /* 176 */ |
25701 | /***/ function(module, exports, __webpack_require__) { | 25794 | /***/ function(module, exports, __webpack_require__) { |
25702 | 25795 | ||
25703 | 'use strict'; | 25796 | 'use strict'; |
@@ -25706,7 +25799,7 @@ | |||
25706 | value: true | 25799 | value: true |
25707 | }); | 25800 | }); |
25708 | 25801 | ||
25709 | var _TimePicker = __webpack_require__(180); | 25802 | var _TimePicker = __webpack_require__(177); |
25710 | 25803 | ||
25711 | var _TimePicker2 = _interopRequireDefault(_TimePicker); | 25804 | var _TimePicker2 = _interopRequireDefault(_TimePicker); |
25712 | 25805 | ||
@@ -25716,7 +25809,7 @@ | |||
25716 | module.exports = exports['default']; | 25809 | module.exports = exports['default']; |
25717 | 25810 | ||
25718 | /***/ }, | 25811 | /***/ }, |
25719 | /* 180 */ | 25812 | /* 177 */ |
25720 | /***/ function(module, exports, __webpack_require__) { | 25813 | /***/ function(module, exports, __webpack_require__) { |
25721 | 25814 | ||
25722 | 'use strict'; | 25815 | 'use strict'; |
@@ -25729,19 +25822,19 @@ | |||
25729 | 25822 | ||
25730 | var _react2 = _interopRequireDefault(_react); | 25823 | var _react2 = _interopRequireDefault(_react); |
25731 | 25824 | ||
25732 | var _rcTrigger = __webpack_require__(181); | 25825 | var _rcTrigger = __webpack_require__(178); |
25733 | 25826 | ||
25734 | var _rcTrigger2 = _interopRequireDefault(_rcTrigger); | 25827 | var _rcTrigger2 = _interopRequireDefault(_rcTrigger); |
25735 | 25828 | ||
25736 | var _Panel = __webpack_require__(213); | 25829 | var _Panel = __webpack_require__(250); |
25737 | 25830 | ||
25738 | var _Panel2 = _interopRequireDefault(_Panel); | 25831 | var _Panel2 = _interopRequireDefault(_Panel); |
25739 | 25832 | ||
25740 | var _placements = __webpack_require__(237); | 25833 | var _placements = __webpack_require__(259); |
25741 | 25834 | ||
25742 | var _placements2 = _interopRequireDefault(_placements); | 25835 | var _placements2 = _interopRequireDefault(_placements); |
25743 | 25836 | ||
25744 | var _moment = __webpack_require__(177); | 25837 | var _moment = __webpack_require__(174); |
25745 | 25838 | ||
25746 | var _moment2 = _interopRequireDefault(_moment); | 25839 | var _moment2 = _interopRequireDefault(_moment); |
25747 | 25840 | ||
@@ -25773,9 +25866,10 @@ | |||
25773 | placeholder: _react.PropTypes.string, | 25866 | placeholder: _react.PropTypes.string, |
25774 | format: _react.PropTypes.string, | 25867 | format: _react.PropTypes.string, |
25775 | showHour: _react.PropTypes.bool, | 25868 | showHour: _react.PropTypes.bool, |
25869 | showMinute: _react.PropTypes.bool, | ||
25870 | showSecond: _react.PropTypes.bool, | ||
25776 | style: _react.PropTypes.object, | 25871 | style: _react.PropTypes.object, |
25777 | className: _react.PropTypes.string, | 25872 | className: _react.PropTypes.string, |
25778 | showSecond: _react.PropTypes.bool, | ||
25779 | disabledHours: _react.PropTypes.func, | 25873 | disabledHours: _react.PropTypes.func, |
25780 | disabledMinutes: _react.PropTypes.func, | 25874 | disabledMinutes: _react.PropTypes.func, |
25781 | disabledSeconds: _react.PropTypes.func, | 25875 | disabledSeconds: _react.PropTypes.func, |
@@ -25797,6 +25891,7 @@ | |||
25797 | defaultOpenValue: (0, _moment2.default)(), | 25891 | defaultOpenValue: (0, _moment2.default)(), |
25798 | allowEmpty: true, | 25892 | allowEmpty: true, |
25799 | showHour: true, | 25893 | showHour: true, |
25894 | showMinute: true, | ||
25800 | showSecond: true, | 25895 | showSecond: true, |
25801 | disabledHours: noop, | 25896 | disabledHours: noop, |
25802 | disabledMinutes: noop, | 25897 | disabledMinutes: noop, |
@@ -25811,13 +25906,13 @@ | |||
25811 | }, | 25906 | }, |
25812 | getInitialState: function getInitialState() { | 25907 | getInitialState: function getInitialState() { |
25813 | this.savePanelRef = refFn.bind(this, 'panelInstance'); | 25908 | this.savePanelRef = refFn.bind(this, 'panelInstance'); |
25814 | var _props = this.props; | 25909 | var _props = this.props, |
25815 | var defaultOpen = _props.defaultOpen; | 25910 | defaultOpen = _props.defaultOpen, |
25816 | var defaultValue = _props.defaultValue; | 25911 | defaultValue = _props.defaultValue, |
25817 | var _props$open = _props.open; | 25912 | _props$open = _props.open, |
25818 | var open = _props$open === undefined ? defaultOpen : _props$open; | 25913 | open = _props$open === undefined ? defaultOpen : _props$open, |
25819 | var _props$value = _props.value; | 25914 | _props$value = _props.value, |
25820 | var value = _props$value === undefined ? defaultValue : _props$value; | 25915 | value = _props$value === undefined ? defaultValue : _props$value; |
25821 | 25916 | ||
25822 | return { | 25917 | return { |
25823 | open: open, | 25918 | open: open, |
@@ -25825,8 +25920,8 @@ | |||
25825 | }; | 25920 | }; |
25826 | }, | 25921 | }, |
25827 | componentWillReceiveProps: function componentWillReceiveProps(nextProps) { | 25922 | componentWillReceiveProps: function componentWillReceiveProps(nextProps) { |
25828 | var value = nextProps.value; | 25923 | var value = nextProps.value, |
25829 | var open = nextProps.open; | 25924 | open = nextProps.open; |
25830 | 25925 | ||
25831 | if ('value' in nextProps) { | 25926 | if ('value' in nextProps) { |
25832 | this.setState({ | 25927 | this.setState({ |
@@ -25865,32 +25960,34 @@ | |||
25865 | this.props.onChange(value); | 25960 | this.props.onChange(value); |
25866 | }, | 25961 | }, |
25867 | getFormat: function getFormat() { | 25962 | getFormat: function getFormat() { |
25868 | var format = this.props.format; | 25963 | var _props2 = this.props, |
25964 | format = _props2.format, | ||
25965 | showHour = _props2.showHour, | ||
25966 | showMinute = _props2.showMinute, | ||
25967 | showSecond = _props2.showSecond; | ||
25968 | |||
25869 | if (format) { | 25969 | if (format) { |
25870 | return format; | 25970 | return format; |
25871 | } | 25971 | } |
25872 | if (!this.props.showSecond) { | 25972 | return [showHour ? 'HH' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) { |
25873 | return 'HH:mm'; | 25973 | return !!item; |
25874 | } | 25974 | }).join(':'); |
25875 | if (!this.props.showHour) { | ||
25876 | return 'mm:ss'; | ||
25877 | } | ||
25878 | return 'HH:mm:ss'; | ||
25879 | }, | 25975 | }, |
25880 | getPanelElement: function getPanelElement() { | 25976 | getPanelElement: function getPanelElement() { |
25881 | var _props2 = this.props; | 25977 | var _props3 = this.props, |
25882 | var prefixCls = _props2.prefixCls; | 25978 | prefixCls = _props3.prefixCls, |
25883 | var placeholder = _props2.placeholder; | 25979 | placeholder = _props3.placeholder, |
25884 | var disabledHours = _props2.disabledHours; | 25980 | disabledHours = _props3.disabledHours, |
25885 | var disabledMinutes = _props2.disabledMinutes; | 25981 | disabledMinutes = _props3.disabledMinutes, |
25886 | var disabledSeconds = _props2.disabledSeconds; | 25982 | disabledSeconds = _props3.disabledSeconds, |
25887 | var hideDisabledOptions = _props2.hideDisabledOptions; | 25983 | hideDisabledOptions = _props3.hideDisabledOptions, |
25888 | var allowEmpty = _props2.allowEmpty; | 25984 | allowEmpty = _props3.allowEmpty, |
25889 | var showHour = _props2.showHour; | 25985 | showHour = _props3.showHour, |
25890 | var showSecond = _props2.showSecond; | 25986 | showMinute = _props3.showMinute, |
25891 | var defaultOpenValue = _props2.defaultOpenValue; | 25987 | showSecond = _props3.showSecond, |
25892 | var clearText = _props2.clearText; | 25988 | defaultOpenValue = _props3.defaultOpenValue, |
25893 | var addon = _props2.addon; | 25989 | clearText = _props3.clearText, |
25990 | addon = _props3.addon; | ||
25894 | 25991 | ||
25895 | return _react2.default.createElement(_Panel2.default, { | 25992 | return _react2.default.createElement(_Panel2.default, { |
25896 | clearText: clearText, | 25993 | clearText: clearText, |
@@ -25901,8 +25998,9 @@ | |||
25901 | onClear: this.onPanelClear, | 25998 | onClear: this.onPanelClear, |
25902 | defaultOpenValue: defaultOpenValue, | 25999 | defaultOpenValue: defaultOpenValue, |
25903 | showHour: showHour, | 26000 | showHour: showHour, |
25904 | onEsc: this.onEsc, | 26001 | showMinute: showMinute, |
25905 | showSecond: showSecond, | 26002 | showSecond: showSecond, |
26003 | onEsc: this.onEsc, | ||
25906 | allowEmpty: allowEmpty, | 26004 | allowEmpty: allowEmpty, |
25907 | format: this.getFormat(), | 26005 | format: this.getFormat(), |
25908 | placeholder: placeholder, | 26006 | placeholder: placeholder, |
@@ -25914,9 +26012,9 @@ | |||
25914 | }); | 26012 | }); |
25915 | }, | 26013 | }, |
25916 | setOpen: function setOpen(open, callback) { | 26014 | setOpen: function setOpen(open, callback) { |
25917 | var _props3 = this.props; | 26015 | var _props4 = this.props, |
25918 | var onOpen = _props3.onOpen; | 26016 | onOpen = _props4.onOpen, |
25919 | var onClose = _props3.onClose; | 26017 | onClose = _props4.onClose; |
25920 | 26018 | ||
25921 | if (this.state.open !== open) { | 26019 | if (this.state.open !== open) { |
25922 | this.setState({ | 26020 | this.setState({ |
@@ -25933,21 +26031,21 @@ | |||
25933 | } | 26031 | } |
25934 | }, | 26032 | }, |
25935 | render: function render() { | 26033 | render: function render() { |
25936 | var _props4 = this.props; | 26034 | var _props5 = this.props, |
25937 | var prefixCls = _props4.prefixCls; | 26035 | prefixCls = _props5.prefixCls, |
25938 | var placeholder = _props4.placeholder; | 26036 | placeholder = _props5.placeholder, |
25939 | var placement = _props4.placement; | 26037 | placement = _props5.placement, |
25940 | var align = _props4.align; | 26038 | align = _props5.align, |
25941 | var disabled = _props4.disabled; | 26039 | disabled = _props5.disabled, |
25942 | var transitionName = _props4.transitionName; | 26040 | transitionName = _props5.transitionName, |
25943 | var style = _props4.style; | 26041 | style = _props5.style, |
25944 | var className = _props4.className; | 26042 | className = _props5.className, |
25945 | var showHour = _props4.showHour; | 26043 | showHour = _props5.showHour, |
25946 | var showSecond = _props4.showSecond; | 26044 | showSecond = _props5.showSecond, |
25947 | var getPopupContainer = _props4.getPopupContainer; | 26045 | getPopupContainer = _props5.getPopupContainer; |
25948 | var _state = this.state; | 26046 | var _state = this.state, |
25949 | var open = _state.open; | 26047 | open = _state.open, |
25950 | var value = _state.value; | 26048 | value = _state.value; |
25951 | 26049 | ||
25952 | var popupClassName = void 0; | 26050 | var popupClassName = void 0; |
25953 | if (!showHour || !showSecond) { | 26051 | if (!showHour || !showSecond) { |
@@ -25989,15 +26087,15 @@ | |||
25989 | module.exports = exports['default']; | 26087 | module.exports = exports['default']; |
25990 | 26088 | ||
25991 | /***/ }, | 26089 | /***/ }, |
25992 | /* 181 */ | 26090 | /* 178 */ |
25993 | /***/ function(module, exports, __webpack_require__) { | 26091 | /***/ function(module, exports, __webpack_require__) { |
25994 | 26092 | ||
25995 | 'use strict'; | 26093 | 'use strict'; |
25996 | 26094 | ||
25997 | module.exports = __webpack_require__(182); | 26095 | module.exports = __webpack_require__(179); |
25998 | 26096 | ||
25999 | /***/ }, | 26097 | /***/ }, |
26000 | /* 182 */ | 26098 | /* 179 */ |
26001 | /***/ function(module, exports, __webpack_require__) { | 26099 | /***/ function(module, exports, __webpack_require__) { |
26002 | 26100 | ||
26003 | 'use strict'; | 26101 | 'use strict'; |
@@ -26006,31 +26104,33 @@ | |||
26006 | value: true | 26104 | value: true |
26007 | }); | 26105 | }); |
26008 | 26106 | ||
26009 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | 26107 | var _extends2 = __webpack_require__(180); |
26108 | |||
26109 | var _extends3 = _interopRequireDefault(_extends2); | ||
26010 | 26110 | ||
26011 | var _react = __webpack_require__(3); | 26111 | var _react = __webpack_require__(3); |
26012 | 26112 | ||
26013 | var _react2 = _interopRequireDefault(_react); | 26113 | var _react2 = _interopRequireDefault(_react); |
26014 | 26114 | ||
26015 | var _reactDom = __webpack_require__(37); | 26115 | var _reactDom = __webpack_require__(36); |
26016 | 26116 | ||
26017 | var _reactDom2 = _interopRequireDefault(_reactDom); | 26117 | var _reactDom2 = _interopRequireDefault(_reactDom); |
26018 | 26118 | ||
26019 | var _contains = __webpack_require__(183); | 26119 | var _contains = __webpack_require__(218); |
26020 | 26120 | ||
26021 | var _contains2 = _interopRequireDefault(_contains); | 26121 | var _contains2 = _interopRequireDefault(_contains); |
26022 | 26122 | ||
26023 | var _addEventListener = __webpack_require__(184); | 26123 | var _addEventListener = __webpack_require__(219); |
26024 | 26124 | ||
26025 | var _addEventListener2 = _interopRequireDefault(_addEventListener); | 26125 | var _addEventListener2 = _interopRequireDefault(_addEventListener); |
26026 | 26126 | ||
26027 | var _Popup = __webpack_require__(188); | 26127 | var _Popup = __webpack_require__(223); |
26028 | 26128 | ||
26029 | var _Popup2 = _interopRequireDefault(_Popup); | 26129 | var _Popup2 = _interopRequireDefault(_Popup); |
26030 | 26130 | ||
26031 | var _utils = __webpack_require__(211); | 26131 | var _utils = __webpack_require__(248); |
26032 | 26132 | ||
26033 | var _getContainerRenderMixin = __webpack_require__(212); | 26133 | var _getContainerRenderMixin = __webpack_require__(249); |
26034 | 26134 | ||
26035 | var _getContainerRenderMixin2 = _interopRequireDefault(_getContainerRenderMixin); | 26135 | var _getContainerRenderMixin2 = _interopRequireDefault(_getContainerRenderMixin); |
26036 | 26136 | ||
@@ -26071,6 +26171,7 @@ | |||
26071 | getPopupContainer: _react.PropTypes.func, | 26171 | getPopupContainer: _react.PropTypes.func, |
26072 | destroyPopupOnHide: _react.PropTypes.bool, | 26172 | destroyPopupOnHide: _react.PropTypes.bool, |
26073 | mask: _react.PropTypes.bool, | 26173 | mask: _react.PropTypes.bool, |
26174 | maskClosable: _react.PropTypes.bool, | ||
26074 | onPopupAlign: _react.PropTypes.func, | 26175 | onPopupAlign: _react.PropTypes.func, |
26075 | popupAlign: _react.PropTypes.object, | 26176 | popupAlign: _react.PropTypes.object, |
26076 | popupVisible: _react.PropTypes.bool, | 26177 | popupVisible: _react.PropTypes.bool, |
@@ -26103,7 +26204,7 @@ | |||
26103 | } | 26204 | } |
26104 | return _react2["default"].createElement( | 26205 | return _react2["default"].createElement( |
26105 | _Popup2["default"], | 26206 | _Popup2["default"], |
26106 | _extends({ | 26207 | (0, _extends3["default"])({ |
26107 | prefixCls: props.prefixCls, | 26208 | prefixCls: props.prefixCls, |
26108 | destroyPopupOnHide: props.destroyPopupOnHide, | 26209 | destroyPopupOnHide: props.destroyPopupOnHide, |
26109 | visible: state.popupVisible, | 26210 | visible: state.popupVisible, |
@@ -26144,6 +26245,7 @@ | |||
26144 | popupAlign: {}, | 26245 | popupAlign: {}, |
26145 | defaultPopupVisible: false, | 26246 | defaultPopupVisible: false, |
26146 | mask: false, | 26247 | mask: false, |
26248 | maskClosable: true, | ||
26147 | action: [], | 26249 | action: [], |
26148 | showAction: [], | 26250 | showAction: [], |
26149 | hideAction: [] | 26251 | hideAction: [] |
@@ -26286,11 +26388,14 @@ | |||
26286 | } | 26388 | } |
26287 | }, | 26389 | }, |
26288 | onDocumentClick: function onDocumentClick(event) { | 26390 | onDocumentClick: function onDocumentClick(event) { |
26391 | if (this.props.mask && !this.props.maskClosable) { | ||
26392 | return; | ||
26393 | } | ||
26289 | var target = event.target; | 26394 | var target = event.target; |
26290 | var root = (0, _reactDom.findDOMNode)(this); | 26395 | var root = (0, _reactDom.findDOMNode)(this); |
26291 | var popupNode = this.getPopupDomNode(); | 26396 | var popupNode = this.getPopupDomNode(); |
26292 | if (!(0, _contains2["default"])(root, target) && !(0, _contains2["default"])(popupNode, target)) { | 26397 | if (!(0, _contains2["default"])(root, target) && !(0, _contains2["default"])(popupNode, target)) { |
26293 | this.setPopupVisible(false); | 26398 | this.close(); |
26294 | } | 26399 | } |
26295 | }, | 26400 | }, |
26296 | getPopupDomNode: function getPopupDomNode() { | 26401 | getPopupDomNode: function getPopupDomNode() { |
@@ -26425,6 +26530,9 @@ | |||
26425 | callback(e); | 26530 | callback(e); |
26426 | } | 26531 | } |
26427 | }, | 26532 | }, |
26533 | close: function close() { | ||
26534 | this.setPopupVisible(false); | ||
26535 | }, | ||
26428 | render: function render() { | 26536 | render: function render() { |
26429 | var props = this.props; | 26537 | var props = this.props; |
26430 | var children = props.children; | 26538 | var children = props.children; |
@@ -26466,7 +26574,540 @@ | |||
26466 | module.exports = exports['default']; | 26574 | module.exports = exports['default']; |
26467 | 26575 | ||
26468 | /***/ }, | 26576 | /***/ }, |
26577 | /* 180 */ | ||
26578 | /***/ function(module, exports, __webpack_require__) { | ||
26579 | |||
26580 | "use strict"; | ||
26581 | |||
26582 | exports.__esModule = true; | ||
26583 | |||
26584 | var _assign = __webpack_require__(181); | ||
26585 | |||
26586 | var _assign2 = _interopRequireDefault(_assign); | ||
26587 | |||
26588 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
26589 | |||
26590 | exports.default = _assign2.default || function (target) { | ||
26591 | for (var i = 1; i < arguments.length; i++) { | ||
26592 | var source = arguments[i]; | ||
26593 | |||
26594 | for (var key in source) { | ||
26595 | if (Object.prototype.hasOwnProperty.call(source, key)) { | ||
26596 | target[key] = source[key]; | ||
26597 | } | ||
26598 | } | ||
26599 | } | ||
26600 | |||
26601 | return target; | ||
26602 | }; | ||
26603 | |||
26604 | /***/ }, | ||
26605 | /* 181 */ | ||
26606 | /***/ function(module, exports, __webpack_require__) { | ||
26607 | |||
26608 | module.exports = { "default": __webpack_require__(182), __esModule: true }; | ||
26609 | |||
26610 | /***/ }, | ||
26611 | /* 182 */ | ||
26612 | /***/ function(module, exports, __webpack_require__) { | ||
26613 | |||
26614 | __webpack_require__(183); | ||
26615 | module.exports = __webpack_require__(186).Object.assign; | ||
26616 | |||
26617 | /***/ }, | ||
26469 | /* 183 */ | 26618 | /* 183 */ |
26619 | /***/ function(module, exports, __webpack_require__) { | ||
26620 | |||
26621 | // 19.1.3.1 Object.assign(target, source) | ||
26622 | var $export = __webpack_require__(184); | ||
26623 | |||
26624 | $export($export.S + $export.F, 'Object', {assign: __webpack_require__(199)}); | ||
26625 | |||
26626 | /***/ }, | ||
26627 | /* 184 */ | ||
26628 | /***/ function(module, exports, __webpack_require__) { | ||
26629 | |||
26630 | var global = __webpack_require__(185) | ||
26631 | , core = __webpack_require__(186) | ||
26632 | , ctx = __webpack_require__(187) | ||
26633 | , hide = __webpack_require__(189) | ||
26634 | , PROTOTYPE = 'prototype'; | ||
26635 | |||
26636 | var $export = function(type, name, source){ | ||
26637 | var IS_FORCED = type & $export.F | ||
26638 | , IS_GLOBAL = type & $export.G | ||
26639 | , IS_STATIC = type & $export.S | ||
26640 | , IS_PROTO = type & $export.P | ||
26641 | , IS_BIND = type & $export.B | ||
26642 | , IS_WRAP = type & $export.W | ||
26643 | , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) | ||
26644 | , expProto = exports[PROTOTYPE] | ||
26645 | , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] | ||
26646 | , key, own, out; | ||
26647 | if(IS_GLOBAL)source = name; | ||
26648 | for(key in source){ | ||
26649 | // contains in native | ||
26650 | own = !IS_FORCED && target && target[key] !== undefined; | ||
26651 | if(own && key in exports)continue; | ||
26652 | // export native or passed | ||
26653 | out = own ? target[key] : source[key]; | ||
26654 | // prevent global pollution for namespaces | ||
26655 | exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] | ||
26656 | // bind timers to global for call from export context | ||
26657 | : IS_BIND && own ? ctx(out, global) | ||
26658 | // wrap global constructors for prevent change them in library | ||
26659 | : IS_WRAP && target[key] == out ? (function(C){ | ||
26660 | var F = function(a, b, c){ | ||
26661 | if(this instanceof C){ | ||
26662 | switch(arguments.length){ | ||
26663 | case 0: return new C; | ||
26664 | case 1: return new C(a); | ||
26665 | case 2: return new C(a, b); | ||
26666 | } return new C(a, b, c); | ||
26667 | } return C.apply(this, arguments); | ||
26668 | }; | ||
26669 | F[PROTOTYPE] = C[PROTOTYPE]; | ||
26670 | return F; | ||
26671 | // make static versions for prototype methods | ||
26672 | })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; | ||
26673 | // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% | ||
26674 | if(IS_PROTO){ | ||
26675 | (exports.virtual || (exports.virtual = {}))[key] = out; | ||
26676 | // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% | ||
26677 | if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); | ||
26678 | } | ||
26679 | } | ||
26680 | }; | ||
26681 | // type bitmap | ||
26682 | $export.F = 1; // forced | ||
26683 | $export.G = 2; // global | ||
26684 | $export.S = 4; // static | ||
26685 | $export.P = 8; // proto | ||
26686 | $export.B = 16; // bind | ||
26687 | $export.W = 32; // wrap | ||
26688 | $export.U = 64; // safe | ||
26689 | $export.R = 128; // real proto method for `library` | ||
26690 | module.exports = $export; | ||
26691 | |||
26692 | /***/ }, | ||
26693 | /* 185 */ | ||
26694 | /***/ function(module, exports) { | ||
26695 | |||
26696 | // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 | ||
26697 | var global = module.exports = typeof window != 'undefined' && window.Math == Math | ||
26698 | ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); | ||
26699 | if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef | ||
26700 | |||
26701 | /***/ }, | ||
26702 | /* 186 */ | ||
26703 | /***/ function(module, exports) { | ||
26704 | |||
26705 | var core = module.exports = {version: '2.4.0'}; | ||
26706 | if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef | ||
26707 | |||
26708 | /***/ }, | ||
26709 | /* 187 */ | ||
26710 | /***/ function(module, exports, __webpack_require__) { | ||
26711 | |||
26712 | // optional / simple context binding | ||
26713 | var aFunction = __webpack_require__(188); | ||
26714 | module.exports = function(fn, that, length){ | ||
26715 | aFunction(fn); | ||
26716 | if(that === undefined)return fn; | ||
26717 | switch(length){ | ||
26718 | case 1: return function(a){ | ||
26719 | return fn.call(that, a); | ||
26720 | }; | ||
26721 | case 2: return function(a, b){ | ||
26722 | return fn.call(that, a, b); | ||
26723 | }; | ||
26724 | case 3: return function(a, b, c){ | ||
26725 | return fn.call(that, a, b, c); | ||
26726 | }; | ||
26727 | } | ||
26728 | return function(/* ...args */){ | ||
26729 | return fn.apply(that, arguments); | ||
26730 | }; | ||
26731 | }; | ||
26732 | |||
26733 | /***/ }, | ||
26734 | /* 188 */ | ||
26735 | /***/ function(module, exports) { | ||
26736 | |||
26737 | module.exports = function(it){ | ||
26738 | if(typeof it != 'function')throw TypeError(it + ' is not a function!'); | ||
26739 | return it; | ||
26740 | }; | ||
26741 | |||
26742 | /***/ }, | ||
26743 | /* 189 */ | ||
26744 | /***/ function(module, exports, __webpack_require__) { | ||
26745 | |||
26746 | var dP = __webpack_require__(190) | ||
26747 | , createDesc = __webpack_require__(198); | ||
26748 | module.exports = __webpack_require__(194) ? function(object, key, value){ | ||
26749 | return dP.f(object, key, createDesc(1, value)); | ||
26750 | } : function(object, key, value){ | ||
26751 | object[key] = value; | ||
26752 | return object; | ||
26753 | }; | ||
26754 | |||
26755 | /***/ }, | ||
26756 | /* 190 */ | ||
26757 | /***/ function(module, exports, __webpack_require__) { | ||
26758 | |||
26759 | var anObject = __webpack_require__(191) | ||
26760 | , IE8_DOM_DEFINE = __webpack_require__(193) | ||
26761 | , toPrimitive = __webpack_require__(197) | ||
26762 | , dP = Object.defineProperty; | ||
26763 | |||
26764 | exports.f = __webpack_require__(194) ? Object.defineProperty : function defineProperty(O, P, Attributes){ | ||
26765 | anObject(O); | ||
26766 | P = toPrimitive(P, true); | ||
26767 | anObject(Attributes); | ||
26768 | if(IE8_DOM_DEFINE)try { | ||
26769 | return dP(O, P, Attributes); | ||
26770 | } catch(e){ /* empty */ } | ||
26771 | if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); | ||
26772 | if('value' in Attributes)O[P] = Attributes.value; | ||
26773 | return O; | ||
26774 | }; | ||
26775 | |||
26776 | /***/ }, | ||
26777 | /* 191 */ | ||
26778 | /***/ function(module, exports, __webpack_require__) { | ||
26779 | |||
26780 | var isObject = __webpack_require__(192); | ||
26781 | module.exports = function(it){ | ||
26782 | if(!isObject(it))throw TypeError(it + ' is not an object!'); | ||
26783 | return it; | ||
26784 | }; | ||
26785 | |||
26786 | /***/ }, | ||
26787 | /* 192 */ | ||
26788 | /***/ function(module, exports) { | ||
26789 | |||
26790 | module.exports = function(it){ | ||
26791 | return typeof it === 'object' ? it !== null : typeof it === 'function'; | ||
26792 | }; | ||
26793 | |||
26794 | /***/ }, | ||
26795 | /* 193 */ | ||
26796 | /***/ function(module, exports, __webpack_require__) { | ||
26797 | |||
26798 | module.exports = !__webpack_require__(194) && !__webpack_require__(195)(function(){ | ||
26799 | return Object.defineProperty(__webpack_require__(196)('div'), 'a', {get: function(){ return 7; }}).a != 7; | ||
26800 | }); | ||
26801 | |||
26802 | /***/ }, | ||
26803 | /* 194 */ | ||
26804 | /***/ function(module, exports, __webpack_require__) { | ||
26805 | |||
26806 | // Thank's IE8 for his funny defineProperty | ||
26807 | module.exports = !__webpack_require__(195)(function(){ | ||
26808 | return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; | ||
26809 | }); | ||
26810 | |||
26811 | /***/ }, | ||
26812 | /* 195 */ | ||
26813 | /***/ function(module, exports) { | ||
26814 | |||
26815 | module.exports = function(exec){ | ||
26816 | try { | ||
26817 | return !!exec(); | ||
26818 | } catch(e){ | ||
26819 | return true; | ||
26820 | } | ||
26821 | }; | ||
26822 | |||
26823 | /***/ }, | ||
26824 | /* 196 */ | ||
26825 | /***/ function(module, exports, __webpack_require__) { | ||
26826 | |||
26827 | var isObject = __webpack_require__(192) | ||
26828 | , document = __webpack_require__(185).document | ||
26829 | // in old IE typeof document.createElement is 'object' | ||
26830 | , is = isObject(document) && isObject(document.createElement); | ||
26831 | module.exports = function(it){ | ||
26832 | return is ? document.createElement(it) : {}; | ||
26833 | }; | ||
26834 | |||
26835 | /***/ }, | ||
26836 | /* 197 */ | ||
26837 | /***/ function(module, exports, __webpack_require__) { | ||
26838 | |||
26839 | // 7.1.1 ToPrimitive(input [, PreferredType]) | ||
26840 | var isObject = __webpack_require__(192); | ||
26841 | // instead of the ES6 spec version, we didn't implement @@toPrimitive case | ||
26842 | // and the second argument - flag - preferred type is a string | ||
26843 | module.exports = function(it, S){ | ||
26844 | if(!isObject(it))return it; | ||
26845 | var fn, val; | ||
26846 | if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; | ||
26847 | if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; | ||
26848 | if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; | ||
26849 | throw TypeError("Can't convert object to primitive value"); | ||
26850 | }; | ||
26851 | |||
26852 | /***/ }, | ||
26853 | /* 198 */ | ||
26854 | /***/ function(module, exports) { | ||
26855 | |||
26856 | module.exports = function(bitmap, value){ | ||
26857 | return { | ||
26858 | enumerable : !(bitmap & 1), | ||
26859 | configurable: !(bitmap & 2), | ||
26860 | writable : !(bitmap & 4), | ||
26861 | value : value | ||
26862 | }; | ||
26863 | }; | ||
26864 | |||
26865 | /***/ }, | ||
26866 | /* 199 */ | ||
26867 | /***/ function(module, exports, __webpack_require__) { | ||
26868 | |||
26869 | 'use strict'; | ||
26870 | // 19.1.2.1 Object.assign(target, source, ...) | ||
26871 | var getKeys = __webpack_require__(200) | ||
26872 | , gOPS = __webpack_require__(215) | ||
26873 | , pIE = __webpack_require__(216) | ||
26874 | , toObject = __webpack_require__(217) | ||
26875 | , IObject = __webpack_require__(204) | ||
26876 | , $assign = Object.assign; | ||
26877 | |||
26878 | // should work with symbols and should have deterministic property order (V8 bug) | ||
26879 | module.exports = !$assign || __webpack_require__(195)(function(){ | ||
26880 | var A = {} | ||
26881 | , B = {} | ||
26882 | , S = Symbol() | ||
26883 | , K = 'abcdefghijklmnopqrst'; | ||
26884 | A[S] = 7; | ||
26885 | K.split('').forEach(function(k){ B[k] = k; }); | ||
26886 | return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; | ||
26887 | }) ? function assign(target, source){ // eslint-disable-line no-unused-vars | ||
26888 | var T = toObject(target) | ||
26889 | , aLen = arguments.length | ||
26890 | , index = 1 | ||
26891 | , getSymbols = gOPS.f | ||
26892 | , isEnum = pIE.f; | ||
26893 | while(aLen > index){ | ||
26894 | var S = IObject(arguments[index++]) | ||
26895 | , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) | ||
26896 | , length = keys.length | ||
26897 | , j = 0 | ||
26898 | , key; | ||
26899 | while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; | ||
26900 | } return T; | ||
26901 | } : $assign; | ||
26902 | |||
26903 | /***/ }, | ||
26904 | /* 200 */ | ||
26905 | /***/ function(module, exports, __webpack_require__) { | ||
26906 | |||
26907 | // 19.1.2.14 / 15.2.3.14 Object.keys(O) | ||
26908 | var $keys = __webpack_require__(201) | ||
26909 | , enumBugKeys = __webpack_require__(214); | ||
26910 | |||
26911 | module.exports = Object.keys || function keys(O){ | ||
26912 | return $keys(O, enumBugKeys); | ||
26913 | }; | ||
26914 | |||
26915 | /***/ }, | ||
26916 | /* 201 */ | ||
26917 | /***/ function(module, exports, __webpack_require__) { | ||
26918 | |||
26919 | var has = __webpack_require__(202) | ||
26920 | , toIObject = __webpack_require__(203) | ||
26921 | , arrayIndexOf = __webpack_require__(207)(false) | ||
26922 | , IE_PROTO = __webpack_require__(211)('IE_PROTO'); | ||
26923 | |||
26924 | module.exports = function(object, names){ | ||
26925 | var O = toIObject(object) | ||
26926 | , i = 0 | ||
26927 | , result = [] | ||
26928 | , key; | ||
26929 | for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); | ||
26930 | // Don't enum bug & hidden keys | ||
26931 | while(names.length > i)if(has(O, key = names[i++])){ | ||
26932 | ~arrayIndexOf(result, key) || result.push(key); | ||
26933 | } | ||
26934 | return result; | ||
26935 | }; | ||
26936 | |||
26937 | /***/ }, | ||
26938 | /* 202 */ | ||
26939 | /***/ function(module, exports) { | ||
26940 | |||
26941 | var hasOwnProperty = {}.hasOwnProperty; | ||
26942 | module.exports = function(it, key){ | ||
26943 | return hasOwnProperty.call(it, key); | ||
26944 | }; | ||
26945 | |||
26946 | /***/ }, | ||
26947 | /* 203 */ | ||
26948 | /***/ function(module, exports, __webpack_require__) { | ||
26949 | |||
26950 | // to indexed object, toObject with fallback for non-array-like ES3 strings | ||
26951 | var IObject = __webpack_require__(204) | ||
26952 | , defined = __webpack_require__(206); | ||
26953 | module.exports = function(it){ | ||
26954 | return IObject(defined(it)); | ||
26955 | }; | ||
26956 | |||
26957 | /***/ }, | ||
26958 | /* 204 */ | ||
26959 | /***/ function(module, exports, __webpack_require__) { | ||
26960 | |||
26961 | // fallback for non-array-like ES3 and non-enumerable old V8 strings | ||
26962 | var cof = __webpack_require__(205); | ||
26963 | module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ | ||
26964 | return cof(it) == 'String' ? it.split('') : Object(it); | ||
26965 | }; | ||
26966 | |||
26967 | /***/ }, | ||
26968 | /* 205 */ | ||
26969 | /***/ function(module, exports) { | ||
26970 | |||
26971 | var toString = {}.toString; | ||
26972 | |||
26973 | module.exports = function(it){ | ||
26974 | return toString.call(it).slice(8, -1); | ||
26975 | }; | ||
26976 | |||
26977 | /***/ }, | ||
26978 | /* 206 */ | ||
26979 | /***/ function(module, exports) { | ||
26980 | |||
26981 | // 7.2.1 RequireObjectCoercible(argument) | ||
26982 | module.exports = function(it){ | ||
26983 | if(it == undefined)throw TypeError("Can't call method on " + it); | ||
26984 | return it; | ||
26985 | }; | ||
26986 | |||
26987 | /***/ }, | ||
26988 | /* 207 */ | ||
26989 | /***/ function(module, exports, __webpack_require__) { | ||
26990 | |||
26991 | // false -> Array#indexOf | ||
26992 | // true -> Array#includes | ||
26993 | var toIObject = __webpack_require__(203) | ||
26994 | , toLength = __webpack_require__(208) | ||
26995 | , toIndex = __webpack_require__(210); | ||
26996 | module.exports = function(IS_INCLUDES){ | ||
26997 | return function($this, el, fromIndex){ | ||
26998 | var O = toIObject($this) | ||
26999 | , length = toLength(O.length) | ||
27000 | , index = toIndex(fromIndex, length) | ||
27001 | , value; | ||
27002 | // Array#includes uses SameValueZero equality algorithm | ||
27003 | if(IS_INCLUDES && el != el)while(length > index){ | ||
27004 | value = O[index++]; | ||
27005 | if(value != value)return true; | ||
27006 | // Array#toIndex ignores holes, Array#includes - not | ||
27007 | } else for(;length > index; index++)if(IS_INCLUDES || index in O){ | ||
27008 | if(O[index] === el)return IS_INCLUDES || index || 0; | ||
27009 | } return !IS_INCLUDES && -1; | ||
27010 | }; | ||
27011 | }; | ||
27012 | |||
27013 | /***/ }, | ||
27014 | /* 208 */ | ||
27015 | /***/ function(module, exports, __webpack_require__) { | ||
27016 | |||
27017 | // 7.1.15 ToLength | ||
27018 | var toInteger = __webpack_require__(209) | ||
27019 | , min = Math.min; | ||
27020 | module.exports = function(it){ | ||
27021 | return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 | ||
27022 | }; | ||
27023 | |||
27024 | /***/ }, | ||
27025 | /* 209 */ | ||
27026 | /***/ function(module, exports) { | ||
27027 | |||
27028 | // 7.1.4 ToInteger | ||
27029 | var ceil = Math.ceil | ||
27030 | , floor = Math.floor; | ||
27031 | module.exports = function(it){ | ||
27032 | return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); | ||
27033 | }; | ||
27034 | |||
27035 | /***/ }, | ||
27036 | /* 210 */ | ||
27037 | /***/ function(module, exports, __webpack_require__) { | ||
27038 | |||
27039 | var toInteger = __webpack_require__(209) | ||
27040 | , max = Math.max | ||
27041 | , min = Math.min; | ||
27042 | module.exports = function(index, length){ | ||
27043 | index = toInteger(index); | ||
27044 | return index < 0 ? max(index + length, 0) : min(index, length); | ||
27045 | }; | ||
27046 | |||
27047 | /***/ }, | ||
27048 | /* 211 */ | ||
27049 | /***/ function(module, exports, __webpack_require__) { | ||
27050 | |||
27051 | var shared = __webpack_require__(212)('keys') | ||
27052 | , uid = __webpack_require__(213); | ||
27053 | module.exports = function(key){ | ||
27054 | return shared[key] || (shared[key] = uid(key)); | ||
27055 | }; | ||
27056 | |||
27057 | /***/ }, | ||
27058 | /* 212 */ | ||
27059 | /***/ function(module, exports, __webpack_require__) { | ||
27060 | |||
27061 | var global = __webpack_require__(185) | ||
27062 | , SHARED = '__core-js_shared__' | ||
27063 | , store = global[SHARED] || (global[SHARED] = {}); | ||
27064 | module.exports = function(key){ | ||
27065 | return store[key] || (store[key] = {}); | ||
27066 | }; | ||
27067 | |||
27068 | /***/ }, | ||
27069 | /* 213 */ | ||
27070 | /***/ function(module, exports) { | ||
27071 | |||
27072 | var id = 0 | ||
27073 | , px = Math.random(); | ||
27074 | module.exports = function(key){ | ||
27075 | return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); | ||
27076 | }; | ||
27077 | |||
27078 | /***/ }, | ||
27079 | /* 214 */ | ||
27080 | /***/ function(module, exports) { | ||
27081 | |||
27082 | // IE 8- don't enum bug keys | ||
27083 | module.exports = ( | ||
27084 | 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' | ||
27085 | ).split(','); | ||
27086 | |||
27087 | /***/ }, | ||
27088 | /* 215 */ | ||
27089 | /***/ function(module, exports) { | ||
27090 | |||
27091 | exports.f = Object.getOwnPropertySymbols; | ||
27092 | |||
27093 | /***/ }, | ||
27094 | /* 216 */ | ||
27095 | /***/ function(module, exports) { | ||
27096 | |||
27097 | exports.f = {}.propertyIsEnumerable; | ||
27098 | |||
27099 | /***/ }, | ||
27100 | /* 217 */ | ||
27101 | /***/ function(module, exports, __webpack_require__) { | ||
27102 | |||
27103 | // 7.1.13 ToObject(argument) | ||
27104 | var defined = __webpack_require__(206); | ||
27105 | module.exports = function(it){ | ||
27106 | return Object(defined(it)); | ||
27107 | }; | ||
27108 | |||
27109 | /***/ }, | ||
27110 | /* 218 */ | ||
26470 | /***/ function(module, exports) { | 27111 | /***/ function(module, exports) { |
26471 | 27112 | ||
26472 | "use strict"; | 27113 | "use strict"; |
@@ -26484,7 +27125,7 @@ | |||
26484 | }; | 27125 | }; |
26485 | 27126 | ||
26486 | /***/ }, | 27127 | /***/ }, |
26487 | /* 184 */ | 27128 | /* 219 */ |
26488 | /***/ function(module, exports, __webpack_require__) { | 27129 | /***/ function(module, exports, __webpack_require__) { |
26489 | 27130 | ||
26490 | 'use strict'; | 27131 | 'use strict'; |
@@ -26494,11 +27135,11 @@ | |||
26494 | }); | 27135 | }); |
26495 | exports["default"] = addEventListenerWrap; | 27136 | exports["default"] = addEventListenerWrap; |
26496 | 27137 | ||
26497 | var _addDomEventListener = __webpack_require__(185); | 27138 | var _addDomEventListener = __webpack_require__(220); |
26498 | 27139 | ||
26499 | var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener); | 27140 | var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener); |
26500 | 27141 | ||
26501 | var _reactDom = __webpack_require__(37); | 27142 | var _reactDom = __webpack_require__(36); |
26502 | 27143 | ||
26503 | var _reactDom2 = _interopRequireDefault(_reactDom); | 27144 | var _reactDom2 = _interopRequireDefault(_reactDom); |
26504 | 27145 | ||
@@ -26514,7 +27155,7 @@ | |||
26514 | module.exports = exports['default']; | 27155 | module.exports = exports['default']; |
26515 | 27156 | ||
26516 | /***/ }, | 27157 | /***/ }, |
26517 | /* 185 */ | 27158 | /* 220 */ |
26518 | /***/ function(module, exports, __webpack_require__) { | 27159 | /***/ function(module, exports, __webpack_require__) { |
26519 | 27160 | ||
26520 | 'use strict'; | 27161 | 'use strict'; |
@@ -26526,7 +27167,7 @@ | |||
26526 | 27167 | ||
26527 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 27168 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } |
26528 | 27169 | ||
26529 | var _EventObject = __webpack_require__(186); | 27170 | var _EventObject = __webpack_require__(221); |
26530 | 27171 | ||
26531 | var _EventObject2 = _interopRequireDefault(_EventObject); | 27172 | var _EventObject2 = _interopRequireDefault(_EventObject); |
26532 | 27173 | ||
@@ -26556,7 +27197,7 @@ | |||
26556 | module.exports = exports['default']; | 27197 | module.exports = exports['default']; |
26557 | 27198 | ||
26558 | /***/ }, | 27199 | /***/ }, |
26559 | /* 186 */ | 27200 | /* 221 */ |
26560 | /***/ function(module, exports, __webpack_require__) { | 27201 | /***/ function(module, exports, __webpack_require__) { |
26561 | 27202 | ||
26562 | /** | 27203 | /** |
@@ -26573,7 +27214,7 @@ | |||
26573 | 27214 | ||
26574 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 27215 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } |
26575 | 27216 | ||
26576 | var _EventBaseObject = __webpack_require__(187); | 27217 | var _EventBaseObject = __webpack_require__(222); |
26577 | 27218 | ||
26578 | var _EventBaseObject2 = _interopRequireDefault(_EventBaseObject); | 27219 | var _EventBaseObject2 = _interopRequireDefault(_EventBaseObject); |
26579 | 27220 | ||
@@ -26839,7 +27480,7 @@ | |||
26839 | module.exports = exports['default']; | 27480 | module.exports = exports['default']; |
26840 | 27481 | ||
26841 | /***/ }, | 27482 | /***/ }, |
26842 | /* 187 */ | 27483 | /* 222 */ |
26843 | /***/ function(module, exports) { | 27484 | /***/ function(module, exports) { |
26844 | 27485 | ||
26845 | /** | 27486 | /** |
@@ -26907,7 +27548,7 @@ | |||
26907 | module.exports = exports["default"]; | 27548 | module.exports = exports["default"]; |
26908 | 27549 | ||
26909 | /***/ }, | 27550 | /***/ }, |
26910 | /* 188 */ | 27551 | /* 223 */ |
26911 | /***/ function(module, exports, __webpack_require__) { | 27552 | /***/ function(module, exports, __webpack_require__) { |
26912 | 27553 | ||
26913 | 'use strict'; | 27554 | 'use strict'; |
@@ -26916,29 +27557,31 @@ | |||
26916 | value: true | 27557 | value: true |
26917 | }); | 27558 | }); |
26918 | 27559 | ||
26919 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | 27560 | var _extends2 = __webpack_require__(180); |
27561 | |||
27562 | var _extends3 = _interopRequireDefault(_extends2); | ||
26920 | 27563 | ||
26921 | var _react = __webpack_require__(3); | 27564 | var _react = __webpack_require__(3); |
26922 | 27565 | ||
26923 | var _react2 = _interopRequireDefault(_react); | 27566 | var _react2 = _interopRequireDefault(_react); |
26924 | 27567 | ||
26925 | var _reactDom = __webpack_require__(37); | 27568 | var _reactDom = __webpack_require__(36); |
26926 | 27569 | ||
26927 | var _reactDom2 = _interopRequireDefault(_reactDom); | 27570 | var _reactDom2 = _interopRequireDefault(_reactDom); |
26928 | 27571 | ||
26929 | var _rcAlign = __webpack_require__(189); | 27572 | var _rcAlign = __webpack_require__(224); |
26930 | 27573 | ||
26931 | var _rcAlign2 = _interopRequireDefault(_rcAlign); | 27574 | var _rcAlign2 = _interopRequireDefault(_rcAlign); |
26932 | 27575 | ||
26933 | var _rcAnimate = __webpack_require__(200); | 27576 | var _rcAnimate = __webpack_require__(236); |
26934 | 27577 | ||
26935 | var _rcAnimate2 = _interopRequireDefault(_rcAnimate); | 27578 | var _rcAnimate2 = _interopRequireDefault(_rcAnimate); |
26936 | 27579 | ||
26937 | var _PopupInner = __webpack_require__(209); | 27580 | var _PopupInner = __webpack_require__(245); |
26938 | 27581 | ||
26939 | var _PopupInner2 = _interopRequireDefault(_PopupInner); | 27582 | var _PopupInner2 = _interopRequireDefault(_PopupInner); |
26940 | 27583 | ||
26941 | var _LazyRenderBox = __webpack_require__(210); | 27584 | var _LazyRenderBox = __webpack_require__(246); |
26942 | 27585 | ||
26943 | var _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox); | 27586 | var _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox); |
26944 | 27587 | ||
@@ -27013,7 +27656,7 @@ | |||
27013 | if (!visible) { | 27656 | if (!visible) { |
27014 | this.currentAlignClassName = null; | 27657 | this.currentAlignClassName = null; |
27015 | } | 27658 | } |
27016 | var newStyle = _extends({}, style, this.getZIndexStyle()); | 27659 | var newStyle = (0, _extends3["default"])({}, style, this.getZIndexStyle()); |
27017 | var popupInnerProps = { | 27660 | var popupInnerProps = { |
27018 | className: className, | 27661 | className: className, |
27019 | prefixCls: prefixCls, | 27662 | prefixCls: prefixCls, |
@@ -27043,7 +27686,7 @@ | |||
27043 | }, | 27686 | }, |
27044 | _react2["default"].createElement( | 27687 | _react2["default"].createElement( |
27045 | _PopupInner2["default"], | 27688 | _PopupInner2["default"], |
27046 | _extends({ | 27689 | (0, _extends3["default"])({ |
27047 | visible: true | 27690 | visible: true |
27048 | }, popupInnerProps), | 27691 | }, popupInnerProps), |
27049 | props.children | 27692 | props.children |
@@ -27075,7 +27718,7 @@ | |||
27075 | }, | 27718 | }, |
27076 | _react2["default"].createElement( | 27719 | _react2["default"].createElement( |
27077 | _PopupInner2["default"], | 27720 | _PopupInner2["default"], |
27078 | _extends({ | 27721 | (0, _extends3["default"])({ |
27079 | hiddenClassName: hiddenClassName | 27722 | hiddenClassName: hiddenClassName |
27080 | }, popupInnerProps), | 27723 | }, popupInnerProps), |
27081 | props.children | 27724 | props.children |
@@ -27136,7 +27779,7 @@ | |||
27136 | module.exports = exports['default']; | 27779 | module.exports = exports['default']; |
27137 | 27780 | ||
27138 | /***/ }, | 27781 | /***/ }, |
27139 | /* 189 */ | 27782 | /* 224 */ |
27140 | /***/ function(module, exports, __webpack_require__) { | 27783 | /***/ function(module, exports, __webpack_require__) { |
27141 | 27784 | ||
27142 | 'use strict'; | 27785 | 'use strict'; |
@@ -27145,7 +27788,7 @@ | |||
27145 | value: true | 27788 | value: true |
27146 | }); | 27789 | }); |
27147 | 27790 | ||
27148 | var _Align = __webpack_require__(190); | 27791 | var _Align = __webpack_require__(225); |
27149 | 27792 | ||
27150 | var _Align2 = _interopRequireDefault(_Align); | 27793 | var _Align2 = _interopRequireDefault(_Align); |
27151 | 27794 | ||
@@ -27156,7 +27799,7 @@ | |||
27156 | module.exports = exports['default']; | 27799 | module.exports = exports['default']; |
27157 | 27800 | ||
27158 | /***/ }, | 27801 | /***/ }, |
27159 | /* 190 */ | 27802 | /* 225 */ |
27160 | /***/ function(module, exports, __webpack_require__) { | 27803 | /***/ function(module, exports, __webpack_require__) { |
27161 | 27804 | ||
27162 | 'use strict'; | 27805 | 'use strict'; |
@@ -27169,19 +27812,19 @@ | |||
27169 | 27812 | ||
27170 | var _react2 = _interopRequireDefault(_react); | 27813 | var _react2 = _interopRequireDefault(_react); |
27171 | 27814 | ||
27172 | var _reactDom = __webpack_require__(37); | 27815 | var _reactDom = __webpack_require__(36); |
27173 | 27816 | ||
27174 | var _reactDom2 = _interopRequireDefault(_reactDom); | 27817 | var _reactDom2 = _interopRequireDefault(_reactDom); |
27175 | 27818 | ||
27176 | var _domAlign = __webpack_require__(191); | 27819 | var _domAlign = __webpack_require__(226); |
27177 | 27820 | ||
27178 | var _domAlign2 = _interopRequireDefault(_domAlign); | 27821 | var _domAlign2 = _interopRequireDefault(_domAlign); |
27179 | 27822 | ||
27180 | var _addEventListener = __webpack_require__(184); | 27823 | var _addEventListener = __webpack_require__(219); |
27181 | 27824 | ||
27182 | var _addEventListener2 = _interopRequireDefault(_addEventListener); | 27825 | var _addEventListener2 = _interopRequireDefault(_addEventListener); |
27183 | 27826 | ||
27184 | var _isWindow = __webpack_require__(199); | 27827 | var _isWindow = __webpack_require__(235); |
27185 | 27828 | ||
27186 | var _isWindow2 = _interopRequireDefault(_isWindow); | 27829 | var _isWindow2 = _interopRequireDefault(_isWindow); |
27187 | 27830 | ||
@@ -27315,48 +27958,48 @@ | |||
27315 | module.exports = exports['default']; | 27958 | module.exports = exports['default']; |
27316 | 27959 | ||
27317 | /***/ }, | 27960 | /***/ }, |
27318 | /* 191 */ | 27961 | /* 226 */ |
27319 | /***/ function(module, exports, __webpack_require__) { | 27962 | /***/ function(module, exports, __webpack_require__) { |
27320 | 27963 | ||
27321 | /** | ||
27322 | * align dom node flexibly | ||
27323 | * @author yiminghe@gmail.com | ||
27324 | */ | ||
27325 | |||
27326 | 'use strict'; | 27964 | 'use strict'; |
27327 | 27965 | ||
27328 | Object.defineProperty(exports, '__esModule', { | 27966 | Object.defineProperty(exports, "__esModule", { |
27329 | value: true | 27967 | value: true |
27330 | }); | 27968 | }); |
27331 | 27969 | ||
27332 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 27970 | var _utils = __webpack_require__(227); |
27333 | |||
27334 | var _utils = __webpack_require__(192); | ||
27335 | 27971 | ||
27336 | var _utils2 = _interopRequireDefault(_utils); | 27972 | var _utils2 = _interopRequireDefault(_utils); |
27337 | 27973 | ||
27338 | var _getOffsetParent = __webpack_require__(193); | 27974 | var _getOffsetParent = __webpack_require__(229); |
27339 | 27975 | ||
27340 | var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent); | 27976 | var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent); |
27341 | 27977 | ||
27342 | var _getVisibleRectForElement = __webpack_require__(194); | 27978 | var _getVisibleRectForElement = __webpack_require__(230); |
27343 | 27979 | ||
27344 | var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement); | 27980 | var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement); |
27345 | 27981 | ||
27346 | var _adjustForViewport = __webpack_require__(195); | 27982 | var _adjustForViewport = __webpack_require__(231); |
27347 | 27983 | ||
27348 | var _adjustForViewport2 = _interopRequireDefault(_adjustForViewport); | 27984 | var _adjustForViewport2 = _interopRequireDefault(_adjustForViewport); |
27349 | 27985 | ||
27350 | var _getRegion = __webpack_require__(196); | 27986 | var _getRegion = __webpack_require__(232); |
27351 | 27987 | ||
27352 | var _getRegion2 = _interopRequireDefault(_getRegion); | 27988 | var _getRegion2 = _interopRequireDefault(_getRegion); |
27353 | 27989 | ||
27354 | var _getElFuturePos = __webpack_require__(197); | 27990 | var _getElFuturePos = __webpack_require__(233); |
27355 | 27991 | ||
27356 | var _getElFuturePos2 = _interopRequireDefault(_getElFuturePos); | 27992 | var _getElFuturePos2 = _interopRequireDefault(_getElFuturePos); |
27357 | 27993 | ||
27994 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
27995 | |||
27358 | // http://yiminghe.iteye.com/blog/1124720 | 27996 | // http://yiminghe.iteye.com/blog/1124720 |
27359 | 27997 | ||
27998 | /** | ||
27999 | * align dom node flexibly | ||
28000 | * @author yiminghe@gmail.com | ||
28001 | */ | ||
28002 | |||
27360 | function isFailX(elFuturePos, elRegion, visibleRect) { | 28003 | function isFailX(elFuturePos, elRegion, visibleRect) { |
27361 | return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right; | 28004 | return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right; |
27362 | } | 28005 | } |
@@ -27375,7 +28018,7 @@ | |||
27375 | 28018 | ||
27376 | function flip(points, reg, map) { | 28019 | function flip(points, reg, map) { |
27377 | var ret = []; | 28020 | var ret = []; |
27378 | _utils2['default'].each(points, function (p) { | 28021 | _utils2["default"].each(points, function (p) { |
27379 | ret.push(p.replace(reg, function (m) { | 28022 | ret.push(p.replace(reg, function (m) { |
27380 | return map[m]; | 28023 | return map[m]; |
27381 | })); | 28024 | })); |
@@ -27389,7 +28032,7 @@ | |||
27389 | } | 28032 | } |
27390 | 28033 | ||
27391 | function convertOffset(str, offsetLen) { | 28034 | function convertOffset(str, offsetLen) { |
27392 | var n = undefined; | 28035 | var n = void 0; |
27393 | if (/%$/.test(str)) { | 28036 | if (/%$/.test(str)) { |
27394 | n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen; | 28037 | n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen; |
27395 | } else { | 28038 | } else { |
@@ -27417,18 +28060,18 @@ | |||
27417 | 28060 | ||
27418 | var fail = 0; | 28061 | var fail = 0; |
27419 | // 当前节点可以被放置的显示区域 | 28062 | // 当前节点可以被放置的显示区域 |
27420 | var visibleRect = (0, _getVisibleRectForElement2['default'])(source); | 28063 | var visibleRect = (0, _getVisibleRectForElement2["default"])(source); |
27421 | // 当前节点所占的区域, left/top/width/height | 28064 | // 当前节点所占的区域, left/top/width/height |
27422 | var elRegion = (0, _getRegion2['default'])(source); | 28065 | var elRegion = (0, _getRegion2["default"])(source); |
27423 | // 参照节点所占的区域, left/top/width/height | 28066 | // 参照节点所占的区域, left/top/width/height |
27424 | var refNodeRegion = (0, _getRegion2['default'])(target); | 28067 | var refNodeRegion = (0, _getRegion2["default"])(target); |
27425 | // 将 offset 转换成数值,支持百分比 | 28068 | // 将 offset 转换成数值,支持百分比 |
27426 | normalizeOffset(offset, elRegion); | 28069 | normalizeOffset(offset, elRegion); |
27427 | normalizeOffset(targetOffset, refNodeRegion); | 28070 | normalizeOffset(targetOffset, refNodeRegion); |
27428 | // 当前节点将要被放置的位置 | 28071 | // 当前节点将要被放置的位置 |
27429 | var elFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, points, offset, targetOffset); | 28072 | var elFuturePos = (0, _getElFuturePos2["default"])(elRegion, refNodeRegion, points, offset, targetOffset); |
27430 | // 当前节点将要所处的区域 | 28073 | // 当前节点将要所处的区域 |
27431 | var newElRegion = _utils2['default'].merge(elRegion, elFuturePos); | 28074 | var newElRegion = _utils2["default"].merge(elRegion, elFuturePos); |
27432 | 28075 | ||
27433 | // 如果可视区域不能完全放置当前节点时允许调整 | 28076 | // 如果可视区域不能完全放置当前节点时允许调整 |
27434 | if (visibleRect && (overflow.adjustX || overflow.adjustY)) { | 28077 | if (visibleRect && (overflow.adjustX || overflow.adjustY)) { |
@@ -27443,7 +28086,7 @@ | |||
27443 | // 偏移量也反下 | 28086 | // 偏移量也反下 |
27444 | var newOffset = flipOffset(offset, 0); | 28087 | var newOffset = flipOffset(offset, 0); |
27445 | var newTargetOffset = flipOffset(targetOffset, 0); | 28088 | var newTargetOffset = flipOffset(targetOffset, 0); |
27446 | var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset); | 28089 | var newElFuturePos = (0, _getElFuturePos2["default"])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset); |
27447 | if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) { | 28090 | if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) { |
27448 | fail = 1; | 28091 | fail = 1; |
27449 | points = newPoints; | 28092 | points = newPoints; |
@@ -27457,27 +28100,27 @@ | |||
27457 | // 如果纵向不能放下 | 28100 | // 如果纵向不能放下 |
27458 | if (isFailY(elFuturePos, elRegion, visibleRect)) { | 28101 | if (isFailY(elFuturePos, elRegion, visibleRect)) { |
27459 | // 对齐位置反下 | 28102 | // 对齐位置反下 |
27460 | var newPoints = flip(points, /[tb]/ig, { | 28103 | var _newPoints = flip(points, /[tb]/ig, { |
27461 | t: 'b', | 28104 | t: 'b', |
27462 | b: 't' | 28105 | b: 't' |
27463 | }); | 28106 | }); |
27464 | // 偏移量也反下 | 28107 | // 偏移量也反下 |
27465 | var newOffset = flipOffset(offset, 1); | 28108 | var _newOffset = flipOffset(offset, 1); |
27466 | var newTargetOffset = flipOffset(targetOffset, 1); | 28109 | var _newTargetOffset = flipOffset(targetOffset, 1); |
27467 | var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset); | 28110 | var _newElFuturePos = (0, _getElFuturePos2["default"])(elRegion, refNodeRegion, _newPoints, _newOffset, _newTargetOffset); |
27468 | if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) { | 28111 | if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) { |
27469 | fail = 1; | 28112 | fail = 1; |
27470 | points = newPoints; | 28113 | points = _newPoints; |
27471 | offset = newOffset; | 28114 | offset = _newOffset; |
27472 | targetOffset = newTargetOffset; | 28115 | targetOffset = _newTargetOffset; |
27473 | } | 28116 | } |
27474 | } | 28117 | } |
27475 | } | 28118 | } |
27476 | 28119 | ||
27477 | // 如果失败,重新计算当前节点将要被放置的位置 | 28120 | // 如果失败,重新计算当前节点将要被放置的位置 |
27478 | if (fail) { | 28121 | if (fail) { |
27479 | elFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, points, offset, targetOffset); | 28122 | elFuturePos = (0, _getElFuturePos2["default"])(elRegion, refNodeRegion, points, offset, targetOffset); |
27480 | _utils2['default'].mix(newElRegion, elFuturePos); | 28123 | _utils2["default"].mix(newElRegion, elFuturePos); |
27481 | } | 28124 | } |
27482 | 28125 | ||
27483 | // 检查反下后的位置是否可以放下了 | 28126 | // 检查反下后的位置是否可以放下了 |
@@ -27488,29 +28131,29 @@ | |||
27488 | 28131 | ||
27489 | // 确实要调整,甚至可能会调整高度宽度 | 28132 | // 确实要调整,甚至可能会调整高度宽度 |
27490 | if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) { | 28133 | if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) { |
27491 | newElRegion = (0, _adjustForViewport2['default'])(elFuturePos, elRegion, visibleRect, newOverflowCfg); | 28134 | newElRegion = (0, _adjustForViewport2["default"])(elFuturePos, elRegion, visibleRect, newOverflowCfg); |
27492 | } | 28135 | } |
27493 | } | 28136 | } |
27494 | 28137 | ||
27495 | // need judge to in case set fixed with in css on height auto element | 28138 | // need judge to in case set fixed with in css on height auto element |
27496 | if (newElRegion.width !== elRegion.width) { | 28139 | if (newElRegion.width !== elRegion.width) { |
27497 | _utils2['default'].css(source, 'width', source.width() + newElRegion.width - elRegion.width); | 28140 | _utils2["default"].css(source, 'width', _utils2["default"].width(source) + newElRegion.width - elRegion.width); |
27498 | } | 28141 | } |
27499 | 28142 | ||
27500 | if (newElRegion.height !== elRegion.height) { | 28143 | if (newElRegion.height !== elRegion.height) { |
27501 | _utils2['default'].css(source, 'height', source.height() + newElRegion.height - elRegion.height); | 28144 | _utils2["default"].css(source, 'height', _utils2["default"].height(source) + newElRegion.height - elRegion.height); |
27502 | } | 28145 | } |
27503 | 28146 | ||
27504 | // https://github.com/kissyteam/kissy/issues/190 | 28147 | // https://github.com/kissyteam/kissy/issues/190 |
27505 | // http://localhost:8888/kissy/src/overlay/demo/other/relative_align/align.html | ||
27506 | // 相对于屏幕位置没变,而 left/top 变了 | 28148 | // 相对于屏幕位置没变,而 left/top 变了 |
27507 | // 例如 <div 'relative'><el absolute></div> | 28149 | // 例如 <div 'relative'><el absolute></div> |
27508 | _utils2['default'].offset(source, { | 28150 | _utils2["default"].offset(source, { |
27509 | left: newElRegion.left, | 28151 | left: newElRegion.left, |
27510 | top: newElRegion.top | 28152 | top: newElRegion.top |
27511 | }, { | 28153 | }, { |
27512 | useCssRight: align.useCssRight, | 28154 | useCssRight: align.useCssRight, |
27513 | useCssBottom: align.useCssBottom | 28155 | useCssBottom: align.useCssBottom, |
28156 | useCssTransform: align.useCssTransform | ||
27514 | }); | 28157 | }); |
27515 | 28158 | ||
27516 | return { | 28159 | return { |
@@ -27521,12 +28164,11 @@ | |||
27521 | }; | 28164 | }; |
27522 | } | 28165 | } |
27523 | 28166 | ||
27524 | domAlign.__getOffsetParent = _getOffsetParent2['default']; | 28167 | domAlign.__getOffsetParent = _getOffsetParent2["default"]; |
27525 | |||
27526 | domAlign.__getVisibleRectForElement = _getVisibleRectForElement2['default']; | ||
27527 | 28168 | ||
27528 | exports['default'] = domAlign; | 28169 | domAlign.__getVisibleRectForElement = _getVisibleRectForElement2["default"]; |
27529 | 28170 | ||
28171 | exports["default"] = domAlign; | ||
27530 | /** | 28172 | /** |
27531 | * 2012-04-26 yiminghe@gmail.com | 28173 | * 2012-04-26 yiminghe@gmail.com |
27532 | * - 优化智能对齐算法 | 28174 | * - 优化智能对齐算法 |
@@ -27535,24 +28177,34 @@ | |||
27535 | * 2011-07-13 yiminghe@gmail.com note: | 28177 | * 2011-07-13 yiminghe@gmail.com note: |
27536 | * - 增加智能对齐,以及大小调整选项 | 28178 | * - 增加智能对齐,以及大小调整选项 |
27537 | **/ | 28179 | **/ |
28180 | |||
27538 | module.exports = exports['default']; | 28181 | module.exports = exports['default']; |
27539 | 28182 | ||
27540 | /***/ }, | 28183 | /***/ }, |
27541 | /* 192 */ | 28184 | /* 227 */ |
27542 | /***/ function(module, exports) { | 28185 | /***/ function(module, exports, __webpack_require__) { |
27543 | 28186 | ||
27544 | 'use strict'; | 28187 | 'use strict'; |
27545 | 28188 | ||
27546 | Object.defineProperty(exports, '__esModule', { | 28189 | Object.defineProperty(exports, "__esModule", { |
27547 | value: true | 28190 | value: true |
27548 | }); | 28191 | }); |
28192 | |||
28193 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; | ||
28194 | |||
28195 | var _propertyUtils = __webpack_require__(228); | ||
28196 | |||
27549 | var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; | 28197 | var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; |
27550 | 28198 | ||
27551 | var getComputedStyleX = undefined; | 28199 | var getComputedStyleX = void 0; |
28200 | |||
28201 | function force(x, y) { | ||
28202 | return x + y; | ||
28203 | } | ||
27552 | 28204 | ||
27553 | function css(el, name, v) { | 28205 | function css(el, name, v) { |
27554 | var value = v; | 28206 | var value = v; |
27555 | if (typeof name === 'object') { | 28207 | if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { |
27556 | for (var i in name) { | 28208 | for (var i in name) { |
27557 | if (name.hasOwnProperty(i)) { | 28209 | if (name.hasOwnProperty(i)) { |
27558 | css(el, i, name[i]); | 28210 | css(el, i, name[i]); |
@@ -27571,9 +28223,9 @@ | |||
27571 | } | 28223 | } |
27572 | 28224 | ||
27573 | function getClientPosition(elem) { | 28225 | function getClientPosition(elem) { |
27574 | var box = undefined; | 28226 | var box = void 0; |
27575 | var x = undefined; | 28227 | var x = void 0; |
27576 | var y = undefined; | 28228 | var y = void 0; |
27577 | var doc = elem.ownerDocument; | 28229 | var doc = elem.ownerDocument; |
27578 | var body = doc.body; | 28230 | var body = doc.body; |
27579 | var docElem = doc && doc.documentElement; | 28231 | var docElem = doc && doc.documentElement; |
@@ -27610,7 +28262,10 @@ | |||
27610 | x -= docElem.clientLeft || body.clientLeft || 0; | 28262 | x -= docElem.clientLeft || body.clientLeft || 0; |
27611 | y -= docElem.clientTop || body.clientTop || 0; | 28263 | y -= docElem.clientTop || body.clientTop || 0; |
27612 | 28264 | ||
27613 | return { left: x, top: y }; | 28265 | return { |
28266 | left: x, | ||
28267 | top: y | ||
28268 | }; | ||
27614 | } | 28269 | } |
27615 | 28270 | ||
27616 | function getScroll(w, top) { | 28271 | function getScroll(w, top) { |
@@ -27725,7 +28380,7 @@ | |||
27725 | } | 28380 | } |
27726 | 28381 | ||
27727 | // 设置 elem 相对 elem.ownerDocument 的坐标 | 28382 | // 设置 elem 相对 elem.ownerDocument 的坐标 |
27728 | function setOffset(elem, offset, option) { | 28383 | function setLeftTop(elem, offset, option) { |
27729 | // set position first, in-case top/left are set even on static elem | 28384 | // set position first, in-case top/left are set even on static elem |
27730 | if (css(elem, 'position') === 'static') { | 28385 | if (css(elem, 'position') === 'static') { |
27731 | elem.style.position = 'relative'; | 28386 | elem.style.position = 'relative'; |
@@ -27744,7 +28399,12 @@ | |||
27744 | if (verticalProperty !== 'top') { | 28399 | if (verticalProperty !== 'top') { |
27745 | presetV = 999; | 28400 | presetV = 999; |
27746 | } | 28401 | } |
27747 | 28402 | var originalTransition = ''; | |
28403 | var originalOffset = getOffset(elem); | ||
28404 | if ('left' in offset || 'top' in offset) { | ||
28405 | originalTransition = (0, _propertyUtils.getTransitionProperty)(elem) || ''; | ||
28406 | (0, _propertyUtils.setTransitionProperty)(elem, 'none'); | ||
28407 | } | ||
27748 | if ('left' in offset) { | 28408 | if ('left' in offset) { |
27749 | elem.style[oppositeHorizontalProperty] = ''; | 28409 | elem.style[oppositeHorizontalProperty] = ''; |
27750 | elem.style[horizontalProperty] = presetH + 'px'; | 28410 | elem.style[horizontalProperty] = presetH + 'px'; |
@@ -27754,22 +28414,63 @@ | |||
27754 | elem.style[verticalProperty] = presetV + 'px'; | 28414 | elem.style[verticalProperty] = presetV + 'px'; |
27755 | } | 28415 | } |
27756 | var old = getOffset(elem); | 28416 | var old = getOffset(elem); |
27757 | var ret = {}; | 28417 | var originalStyle = {}; |
27758 | var key = undefined; | 28418 | for (var key in offset) { |
27759 | for (key in offset) { | ||
27760 | if (offset.hasOwnProperty(key)) { | 28419 | if (offset.hasOwnProperty(key)) { |
27761 | var dir = getOffsetDirection(key, option); | 28420 | var dir = getOffsetDirection(key, option); |
27762 | var preset = key === 'left' ? presetH : presetV; | 28421 | var preset = key === 'left' ? presetH : presetV; |
28422 | var off = originalOffset[key] - old[key]; | ||
27763 | if (dir === key) { | 28423 | if (dir === key) { |
27764 | ret[dir] = preset + offset[key] - old[key]; | 28424 | originalStyle[dir] = preset + off; |
27765 | } else { | 28425 | } else { |
27766 | ret[dir] = preset + old[key] - offset[key]; | 28426 | originalStyle[dir] = preset - off; |
28427 | } | ||
28428 | } | ||
28429 | } | ||
28430 | css(elem, originalStyle); | ||
28431 | // force relayout | ||
28432 | force(elem.offsetTop, elem.offsetLeft); | ||
28433 | if ('left' in offset || 'top' in offset) { | ||
28434 | (0, _propertyUtils.setTransitionProperty)(elem, originalTransition); | ||
28435 | } | ||
28436 | var ret = {}; | ||
28437 | for (var _key in offset) { | ||
28438 | if (offset.hasOwnProperty(_key)) { | ||
28439 | var _dir = getOffsetDirection(_key, option); | ||
28440 | var _off = offset[_key] - originalOffset[_key]; | ||
28441 | if (_key === _dir) { | ||
28442 | ret[_dir] = originalStyle[_dir] + _off; | ||
28443 | } else { | ||
28444 | ret[_dir] = originalStyle[_dir] - _off; | ||
27767 | } | 28445 | } |
27768 | } | 28446 | } |
27769 | } | 28447 | } |
27770 | css(elem, ret); | 28448 | css(elem, ret); |
27771 | } | 28449 | } |
27772 | 28450 | ||
28451 | function setTransform(elem, offset) { | ||
28452 | var originalOffset = getOffset(elem); | ||
28453 | var originalXY = (0, _propertyUtils.getTransformXY)(elem); | ||
28454 | var resultXY = { x: originalXY.x, y: originalXY.y }; | ||
28455 | if ('left' in offset) { | ||
28456 | resultXY.x = originalXY.x + offset.left - originalOffset.left; | ||
28457 | } | ||
28458 | if ('top' in offset) { | ||
28459 | resultXY.y = originalXY.y + offset.top - originalOffset.top; | ||
28460 | } | ||
28461 | (0, _propertyUtils.setTransformXY)(elem, resultXY); | ||
28462 | } | ||
28463 | |||
28464 | function setOffset(elem, offset, option) { | ||
28465 | if (option.useCssRight || option.useCssBottom) { | ||
28466 | setLeftTop(elem, offset, option); | ||
28467 | } else if (option.useCssTransform && (0, _propertyUtils.getTransformName)() in document.body.style) { | ||
28468 | setTransform(elem, offset, option); | ||
28469 | } else { | ||
28470 | setLeftTop(elem, offset, option); | ||
28471 | } | ||
28472 | } | ||
28473 | |||
27773 | function each(arr, fn) { | 28474 | function each(arr, fn) { |
27774 | for (var i = 0; i < arr.length; i++) { | 28475 | for (var i = 0; i < arr.length; i++) { |
27775 | fn(arr[i]); | 28476 | fn(arr[i]); |
@@ -27789,7 +28490,7 @@ | |||
27789 | function swap(elem, options, callback) { | 28490 | function swap(elem, options, callback) { |
27790 | var old = {}; | 28491 | var old = {}; |
27791 | var style = elem.style; | 28492 | var style = elem.style; |
27792 | var name = undefined; | 28493 | var name = void 0; |
27793 | 28494 | ||
27794 | // Remember the old values, and insert the new ones | 28495 | // Remember the old values, and insert the new ones |
27795 | for (name in options) { | 28496 | for (name in options) { |
@@ -27811,16 +28512,16 @@ | |||
27811 | 28512 | ||
27812 | function getPBMWidth(elem, props, which) { | 28513 | function getPBMWidth(elem, props, which) { |
27813 | var value = 0; | 28514 | var value = 0; |
27814 | var prop = undefined; | 28515 | var prop = void 0; |
27815 | var j = undefined; | 28516 | var j = void 0; |
27816 | var i = undefined; | 28517 | var i = void 0; |
27817 | for (j = 0; j < props.length; j++) { | 28518 | for (j = 0; j < props.length; j++) { |
27818 | prop = props[j]; | 28519 | prop = props[j]; |
27819 | if (prop) { | 28520 | if (prop) { |
27820 | for (i = 0; i < which.length; i++) { | 28521 | for (i = 0; i < which.length; i++) { |
27821 | var cssProp = undefined; | 28522 | var cssProp = void 0; |
27822 | if (prop === 'border') { | 28523 | if (prop === 'border') { |
27823 | cssProp = prop + which[i] + 'Width'; | 28524 | cssProp = '' + prop + which[i] + 'Width'; |
27824 | } else { | 28525 | } else { |
27825 | cssProp = prop + which[i]; | 28526 | cssProp = prop + which[i]; |
27826 | } | 28527 | } |
@@ -27916,15 +28617,19 @@ | |||
27916 | return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle); | 28617 | return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle); |
27917 | } | 28618 | } |
27918 | 28619 | ||
27919 | var cssShow = { position: 'absolute', visibility: 'hidden', display: 'block' }; | 28620 | var cssShow = { |
28621 | position: 'absolute', | ||
28622 | visibility: 'hidden', | ||
28623 | display: 'block' | ||
28624 | }; | ||
27920 | 28625 | ||
27921 | // fix #119 : https://github.com/kissyteam/kissy/issues/119 | 28626 | // fix #119 : https://github.com/kissyteam/kissy/issues/119 |
27922 | function getWHIgnoreDisplay() { | 28627 | function getWHIgnoreDisplay() { |
27923 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | 28628 | for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) { |
27924 | args[_key] = arguments[_key]; | 28629 | args[_key2] = arguments[_key2]; |
27925 | } | 28630 | } |
27926 | 28631 | ||
27927 | var val = undefined; | 28632 | var val = void 0; |
27928 | var elem = args[0]; | 28633 | var elem = args[0]; |
27929 | // in case elem is window | 28634 | // in case elem is window |
27930 | // elem.offsetWidth === undefined | 28635 | // elem.offsetWidth === undefined |
@@ -27986,11 +28691,12 @@ | |||
27986 | return getOffset(el); | 28691 | return getOffset(el); |
27987 | } | 28692 | } |
27988 | }, | 28693 | }, |
28694 | |||
27989 | isWindow: isWindow, | 28695 | isWindow: isWindow, |
27990 | each: each, | 28696 | each: each, |
27991 | css: css, | 28697 | css: css, |
27992 | clone: function clone(obj) { | 28698 | clone: function clone(obj) { |
27993 | var i = undefined; | 28699 | var i = void 0; |
27994 | var ret = {}; | 28700 | var ret = {}; |
27995 | for (i in obj) { | 28701 | for (i in obj) { |
27996 | if (obj.hasOwnProperty(i)) { | 28702 | if (obj.hasOwnProperty(i)) { |
@@ -28007,6 +28713,7 @@ | |||
28007 | } | 28713 | } |
28008 | return ret; | 28714 | return ret; |
28009 | }, | 28715 | }, |
28716 | |||
28010 | mix: mix, | 28717 | mix: mix, |
28011 | getWindowScrollLeft: function getWindowScrollLeft(w) { | 28718 | getWindowScrollLeft: function getWindowScrollLeft(w) { |
28012 | return getScrollLeft(w); | 28719 | return getScrollLeft(w); |
@@ -28017,8 +28724,8 @@ | |||
28017 | merge: function merge() { | 28724 | merge: function merge() { |
28018 | var ret = {}; | 28725 | var ret = {}; |
28019 | 28726 | ||
28020 | for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | 28727 | for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) { |
28021 | args[_key2] = arguments[_key2]; | 28728 | args[_key3] = arguments[_key3]; |
28022 | } | 28729 | } |
28023 | 28730 | ||
28024 | for (var i = 0; i < args.length; i++) { | 28731 | for (var i = 0; i < args.length; i++) { |
@@ -28026,31 +28733,147 @@ | |||
28026 | } | 28733 | } |
28027 | return ret; | 28734 | return ret; |
28028 | }, | 28735 | }, |
28736 | |||
28029 | viewportWidth: 0, | 28737 | viewportWidth: 0, |
28030 | viewportHeight: 0 | 28738 | viewportHeight: 0 |
28031 | }; | 28739 | }; |
28032 | 28740 | ||
28033 | mix(utils, domUtils); | 28741 | mix(utils, domUtils); |
28034 | 28742 | ||
28035 | exports['default'] = utils; | 28743 | exports["default"] = utils; |
28036 | module.exports = exports['default']; | 28744 | module.exports = exports['default']; |
28037 | 28745 | ||
28038 | /***/ }, | 28746 | /***/ }, |
28039 | /* 193 */ | 28747 | /* 228 */ |
28040 | /***/ function(module, exports, __webpack_require__) { | 28748 | /***/ function(module, exports) { |
28041 | 28749 | ||
28042 | 'use strict'; | 28750 | 'use strict'; |
28043 | 28751 | ||
28044 | Object.defineProperty(exports, '__esModule', { | 28752 | Object.defineProperty(exports, "__esModule", { |
28045 | value: true | 28753 | value: true |
28046 | }); | 28754 | }); |
28755 | exports.getTransformName = getTransformName; | ||
28756 | exports.setTransitionProperty = setTransitionProperty; | ||
28757 | exports.getTransitionProperty = getTransitionProperty; | ||
28758 | exports.getTransformXY = getTransformXY; | ||
28759 | exports.setTransformXY = setTransformXY; | ||
28760 | var vendorPrefix = void 0; | ||
28761 | |||
28762 | var jsCssMap = { | ||
28763 | Webkit: '-webkit-', | ||
28764 | Moz: '-moz-', | ||
28765 | // IE did it wrong again ... | ||
28766 | ms: '-ms-', | ||
28767 | O: '-o-' | ||
28768 | }; | ||
28047 | 28769 | ||
28048 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 28770 | function getVendorPrefix() { |
28771 | if (vendorPrefix !== undefined) { | ||
28772 | return vendorPrefix; | ||
28773 | } | ||
28774 | vendorPrefix = ''; | ||
28775 | var style = document.createElement('p').style; | ||
28776 | var testProp = 'Transform'; | ||
28777 | for (var key in jsCssMap) { | ||
28778 | if (key + testProp in style) { | ||
28779 | vendorPrefix = key; | ||
28780 | } | ||
28781 | } | ||
28782 | return vendorPrefix; | ||
28783 | } | ||
28784 | |||
28785 | function getTransitionName() { | ||
28786 | return getVendorPrefix() ? getVendorPrefix() + 'TransitionProperty' : 'transitionProperty'; | ||
28787 | } | ||
28788 | |||
28789 | function getTransformName() { | ||
28790 | return getVendorPrefix() ? getVendorPrefix() + 'Transform' : 'transform'; | ||
28791 | } | ||
28792 | |||
28793 | function setTransitionProperty(node, value) { | ||
28794 | var name = getTransitionName(); | ||
28795 | if (name) { | ||
28796 | node.style[name] = value; | ||
28797 | if (name !== 'transitionProperty') { | ||
28798 | node.style.transitionProperty = value; | ||
28799 | } | ||
28800 | } | ||
28801 | } | ||
28802 | |||
28803 | function setTransform(node, value) { | ||
28804 | var name = getTransformName(); | ||
28805 | if (name) { | ||
28806 | node.style[name] = value; | ||
28807 | if (name !== 'transform') { | ||
28808 | node.style.transform = value; | ||
28809 | } | ||
28810 | } | ||
28811 | } | ||
28812 | |||
28813 | function getTransitionProperty(node) { | ||
28814 | return node.style.transitionProperty || node.style[getTransitionName()]; | ||
28815 | } | ||
28816 | |||
28817 | function getTransformXY(node) { | ||
28818 | var style = window.getComputedStyle(node, null); | ||
28819 | var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName()); | ||
28820 | if (transform && transform !== 'none') { | ||
28821 | var matrix = transform.replace(/[^0-9\-.,]/g, '').split(','); | ||
28822 | return { x: parseFloat(matrix[12] || matrix[4], 0), y: parseFloat(matrix[13] || matrix[5], 0) }; | ||
28823 | } | ||
28824 | return { | ||
28825 | x: 0, | ||
28826 | y: 0 | ||
28827 | }; | ||
28828 | } | ||
28829 | |||
28830 | var matrix2d = /matrix\((.*)\)/; | ||
28831 | var matrix3d = /matrix3d\((.*)\)/; | ||
28832 | |||
28833 | function setTransformXY(node, xy) { | ||
28834 | var style = window.getComputedStyle(node, null); | ||
28835 | var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName()); | ||
28836 | if (transform && transform !== 'none') { | ||
28837 | var arr = void 0; | ||
28838 | var match2d = transform.match(matrix2d); | ||
28839 | if (match2d) { | ||
28840 | match2d = match2d[1]; | ||
28841 | arr = match2d.split(',').map(function (item) { | ||
28842 | return parseFloat(item, 10); | ||
28843 | }); | ||
28844 | arr[4] = xy.x; | ||
28845 | arr[5] = xy.y; | ||
28846 | setTransform(node, 'matrix(' + arr.join(',') + ')'); | ||
28847 | } else { | ||
28848 | var match3d = transform.match(matrix3d)[1]; | ||
28849 | arr = match3d.split(',').map(function (item) { | ||
28850 | return parseFloat(item, 10); | ||
28851 | }); | ||
28852 | arr[12] = xy.x; | ||
28853 | arr[13] = xy.y; | ||
28854 | setTransform(node, 'matrix3d(' + arr.join(',') + ')'); | ||
28855 | } | ||
28856 | } else { | ||
28857 | setTransform(node, 'translateX(' + xy.x + 'px) translateY(' + xy.y + 'px) translateZ(0)'); | ||
28858 | } | ||
28859 | } | ||
28860 | |||
28861 | /***/ }, | ||
28862 | /* 229 */ | ||
28863 | /***/ function(module, exports, __webpack_require__) { | ||
28864 | |||
28865 | 'use strict'; | ||
28049 | 28866 | ||
28050 | var _utils = __webpack_require__(192); | 28867 | Object.defineProperty(exports, "__esModule", { |
28868 | value: true | ||
28869 | }); | ||
28870 | |||
28871 | var _utils = __webpack_require__(227); | ||
28051 | 28872 | ||
28052 | var _utils2 = _interopRequireDefault(_utils); | 28873 | var _utils2 = _interopRequireDefault(_utils); |
28053 | 28874 | ||
28875 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
28876 | |||
28054 | /** | 28877 | /** |
28055 | * 得到会导致元素显示不全的祖先元素 | 28878 | * 得到会导致元素显示不全的祖先元素 |
28056 | */ | 28879 | */ |
@@ -28073,8 +28896,8 @@ | |||
28073 | // 统一的 offsetParent 方法 | 28896 | // 统一的 offsetParent 方法 |
28074 | var doc = element.ownerDocument; | 28897 | var doc = element.ownerDocument; |
28075 | var body = doc.body; | 28898 | var body = doc.body; |
28076 | var parent = undefined; | 28899 | var parent = void 0; |
28077 | var positionStyle = _utils2['default'].css(element, 'position'); | 28900 | var positionStyle = _utils2["default"].css(element, 'position'); |
28078 | var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute'; | 28901 | var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute'; |
28079 | 28902 | ||
28080 | if (!skipStatic) { | 28903 | if (!skipStatic) { |
@@ -28082,7 +28905,7 @@ | |||
28082 | } | 28905 | } |
28083 | 28906 | ||
28084 | for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) { | 28907 | for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) { |
28085 | positionStyle = _utils2['default'].css(parent, 'position'); | 28908 | positionStyle = _utils2["default"].css(parent, 'position'); |
28086 | if (positionStyle !== 'static') { | 28909 | if (positionStyle !== 'static') { |
28087 | return parent; | 28910 | return parent; |
28088 | } | 28911 | } |
@@ -28090,29 +28913,29 @@ | |||
28090 | return null; | 28913 | return null; |
28091 | } | 28914 | } |
28092 | 28915 | ||
28093 | exports['default'] = getOffsetParent; | 28916 | exports["default"] = getOffsetParent; |
28094 | module.exports = exports['default']; | 28917 | module.exports = exports['default']; |
28095 | 28918 | ||
28096 | /***/ }, | 28919 | /***/ }, |
28097 | /* 194 */ | 28920 | /* 230 */ |
28098 | /***/ function(module, exports, __webpack_require__) { | 28921 | /***/ function(module, exports, __webpack_require__) { |
28099 | 28922 | ||
28100 | 'use strict'; | 28923 | 'use strict'; |
28101 | 28924 | ||
28102 | Object.defineProperty(exports, '__esModule', { | 28925 | Object.defineProperty(exports, "__esModule", { |
28103 | value: true | 28926 | value: true |
28104 | }); | 28927 | }); |
28105 | 28928 | ||
28106 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 28929 | var _utils = __webpack_require__(227); |
28107 | |||
28108 | var _utils = __webpack_require__(192); | ||
28109 | 28930 | ||
28110 | var _utils2 = _interopRequireDefault(_utils); | 28931 | var _utils2 = _interopRequireDefault(_utils); |
28111 | 28932 | ||
28112 | var _getOffsetParent = __webpack_require__(193); | 28933 | var _getOffsetParent = __webpack_require__(229); |
28113 | 28934 | ||
28114 | var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent); | 28935 | var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent); |
28115 | 28936 | ||
28937 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
28938 | |||
28116 | /** | 28939 | /** |
28117 | * 获得元素的显示部分的区域 | 28940 | * 获得元素的显示部分的区域 |
28118 | */ | 28941 | */ |
@@ -28123,10 +28946,10 @@ | |||
28123 | top: 0, | 28946 | top: 0, |
28124 | bottom: Infinity | 28947 | bottom: Infinity |
28125 | }; | 28948 | }; |
28126 | var el = (0, _getOffsetParent2['default'])(element); | 28949 | var el = (0, _getOffsetParent2["default"])(element); |
28127 | var scrollX = undefined; | 28950 | var scrollX = void 0; |
28128 | var scrollY = undefined; | 28951 | var scrollY = void 0; |
28129 | var winSize = undefined; | 28952 | var winSize = void 0; |
28130 | var doc = element.ownerDocument; | 28953 | var doc = element.ownerDocument; |
28131 | var win = doc.defaultView || doc.parentWindow; | 28954 | var win = doc.defaultView || doc.parentWindow; |
28132 | var body = doc.body; | 28955 | var body = doc.body; |
@@ -28140,8 +28963,8 @@ | |||
28140 | // body may have overflow set on it, yet we still get the entire | 28963 | // body may have overflow set on it, yet we still get the entire |
28141 | // viewport. In some browsers, el.offsetParent may be | 28964 | // viewport. In some browsers, el.offsetParent may be |
28142 | // document.documentElement, so check for that too. | 28965 | // document.documentElement, so check for that too. |
28143 | el !== body && el !== documentElement && _utils2['default'].css(el, 'overflow') !== 'visible') { | 28966 | el !== body && el !== documentElement && _utils2["default"].css(el, 'overflow') !== 'visible') { |
28144 | var pos = _utils2['default'].offset(el); | 28967 | var pos = _utils2["default"].offset(el); |
28145 | // add border | 28968 | // add border |
28146 | pos.left += el.clientLeft; | 28969 | pos.left += el.clientLeft; |
28147 | pos.top += el.clientTop; | 28970 | pos.top += el.clientTop; |
@@ -28154,44 +28977,44 @@ | |||
28154 | } else if (el === body || el === documentElement) { | 28977 | } else if (el === body || el === documentElement) { |
28155 | break; | 28978 | break; |
28156 | } | 28979 | } |
28157 | el = (0, _getOffsetParent2['default'])(el); | 28980 | el = (0, _getOffsetParent2["default"])(el); |
28158 | } | 28981 | } |
28159 | 28982 | ||
28160 | // Clip by window's viewport. | 28983 | // Clip by window's viewport. |
28161 | scrollX = _utils2['default'].getWindowScrollLeft(win); | 28984 | scrollX = _utils2["default"].getWindowScrollLeft(win); |
28162 | scrollY = _utils2['default'].getWindowScrollTop(win); | 28985 | scrollY = _utils2["default"].getWindowScrollTop(win); |
28163 | visibleRect.left = Math.max(visibleRect.left, scrollX); | 28986 | visibleRect.left = Math.max(visibleRect.left, scrollX); |
28164 | visibleRect.top = Math.max(visibleRect.top, scrollY); | 28987 | visibleRect.top = Math.max(visibleRect.top, scrollY); |
28165 | winSize = { | 28988 | winSize = { |
28166 | width: _utils2['default'].viewportWidth(win), | 28989 | width: _utils2["default"].viewportWidth(win), |
28167 | height: _utils2['default'].viewportHeight(win) | 28990 | height: _utils2["default"].viewportHeight(win) |
28168 | }; | 28991 | }; |
28169 | visibleRect.right = Math.min(visibleRect.right, scrollX + winSize.width); | 28992 | visibleRect.right = Math.min(visibleRect.right, scrollX + winSize.width); |
28170 | visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + winSize.height); | 28993 | visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + winSize.height); |
28171 | return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null; | 28994 | return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null; |
28172 | } | 28995 | } |
28173 | 28996 | ||
28174 | exports['default'] = getVisibleRectForElement; | 28997 | exports["default"] = getVisibleRectForElement; |
28175 | module.exports = exports['default']; | 28998 | module.exports = exports['default']; |
28176 | 28999 | ||
28177 | /***/ }, | 29000 | /***/ }, |
28178 | /* 195 */ | 29001 | /* 231 */ |
28179 | /***/ function(module, exports, __webpack_require__) { | 29002 | /***/ function(module, exports, __webpack_require__) { |
28180 | 29003 | ||
28181 | 'use strict'; | 29004 | 'use strict'; |
28182 | 29005 | ||
28183 | Object.defineProperty(exports, '__esModule', { | 29006 | Object.defineProperty(exports, "__esModule", { |
28184 | value: true | 29007 | value: true |
28185 | }); | 29008 | }); |
28186 | 29009 | ||
28187 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 29010 | var _utils = __webpack_require__(227); |
28188 | |||
28189 | var _utils = __webpack_require__(192); | ||
28190 | 29011 | ||
28191 | var _utils2 = _interopRequireDefault(_utils); | 29012 | var _utils2 = _interopRequireDefault(_utils); |
28192 | 29013 | ||
29014 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
29015 | |||
28193 | function adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) { | 29016 | function adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) { |
28194 | var pos = _utils2['default'].clone(elFuturePos); | 29017 | var pos = _utils2["default"].clone(elFuturePos); |
28195 | var size = { | 29018 | var size = { |
28196 | width: elRegion.width, | 29019 | width: elRegion.width, |
28197 | height: elRegion.height | 29020 | height: elRegion.height |
@@ -28228,82 +29051,82 @@ | |||
28228 | pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top); | 29051 | pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top); |
28229 | } | 29052 | } |
28230 | 29053 | ||
28231 | return _utils2['default'].mix(pos, size); | 29054 | return _utils2["default"].mix(pos, size); |
28232 | } | 29055 | } |
28233 | 29056 | ||
28234 | exports['default'] = adjustForViewport; | 29057 | exports["default"] = adjustForViewport; |
28235 | module.exports = exports['default']; | 29058 | module.exports = exports['default']; |
28236 | 29059 | ||
28237 | /***/ }, | 29060 | /***/ }, |
28238 | /* 196 */ | 29061 | /* 232 */ |
28239 | /***/ function(module, exports, __webpack_require__) { | 29062 | /***/ function(module, exports, __webpack_require__) { |
28240 | 29063 | ||
28241 | 'use strict'; | 29064 | 'use strict'; |
28242 | 29065 | ||
28243 | Object.defineProperty(exports, '__esModule', { | 29066 | Object.defineProperty(exports, "__esModule", { |
28244 | value: true | 29067 | value: true |
28245 | }); | 29068 | }); |
28246 | 29069 | ||
28247 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 29070 | var _utils = __webpack_require__(227); |
28248 | |||
28249 | var _utils = __webpack_require__(192); | ||
28250 | 29071 | ||
28251 | var _utils2 = _interopRequireDefault(_utils); | 29072 | var _utils2 = _interopRequireDefault(_utils); |
28252 | 29073 | ||
29074 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
29075 | |||
28253 | function getRegion(node) { | 29076 | function getRegion(node) { |
28254 | var offset = undefined; | 29077 | var offset = void 0; |
28255 | var w = undefined; | 29078 | var w = void 0; |
28256 | var h = undefined; | 29079 | var h = void 0; |
28257 | if (!_utils2['default'].isWindow(node) && node.nodeType !== 9) { | 29080 | if (!_utils2["default"].isWindow(node) && node.nodeType !== 9) { |
28258 | offset = _utils2['default'].offset(node); | 29081 | offset = _utils2["default"].offset(node); |
28259 | w = _utils2['default'].outerWidth(node); | 29082 | w = _utils2["default"].outerWidth(node); |
28260 | h = _utils2['default'].outerHeight(node); | 29083 | h = _utils2["default"].outerHeight(node); |
28261 | } else { | 29084 | } else { |
28262 | var win = _utils2['default'].getWindow(node); | 29085 | var win = _utils2["default"].getWindow(node); |
28263 | offset = { | 29086 | offset = { |
28264 | left: _utils2['default'].getWindowScrollLeft(win), | 29087 | left: _utils2["default"].getWindowScrollLeft(win), |
28265 | top: _utils2['default'].getWindowScrollTop(win) | 29088 | top: _utils2["default"].getWindowScrollTop(win) |
28266 | }; | 29089 | }; |
28267 | w = _utils2['default'].viewportWidth(win); | 29090 | w = _utils2["default"].viewportWidth(win); |
28268 | h = _utils2['default'].viewportHeight(win); | 29091 | h = _utils2["default"].viewportHeight(win); |
28269 | } | 29092 | } |
28270 | offset.width = w; | 29093 | offset.width = w; |
28271 | offset.height = h; | 29094 | offset.height = h; |
28272 | return offset; | 29095 | return offset; |
28273 | } | 29096 | } |
28274 | 29097 | ||
28275 | exports['default'] = getRegion; | 29098 | exports["default"] = getRegion; |
28276 | module.exports = exports['default']; | 29099 | module.exports = exports['default']; |
28277 | 29100 | ||
28278 | /***/ }, | 29101 | /***/ }, |
28279 | /* 197 */ | 29102 | /* 233 */ |
28280 | /***/ function(module, exports, __webpack_require__) { | 29103 | /***/ function(module, exports, __webpack_require__) { |
28281 | 29104 | ||
28282 | 'use strict'; | 29105 | 'use strict'; |
28283 | 29106 | ||
28284 | Object.defineProperty(exports, '__esModule', { | 29107 | Object.defineProperty(exports, "__esModule", { |
28285 | value: true | 29108 | value: true |
28286 | }); | 29109 | }); |
28287 | 29110 | ||
28288 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | 29111 | var _getAlignOffset = __webpack_require__(234); |
28289 | |||
28290 | var _getAlignOffset = __webpack_require__(198); | ||
28291 | 29112 | ||
28292 | var _getAlignOffset2 = _interopRequireDefault(_getAlignOffset); | 29113 | var _getAlignOffset2 = _interopRequireDefault(_getAlignOffset); |
28293 | 29114 | ||
29115 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
29116 | |||
28294 | function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) { | 29117 | function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) { |
28295 | var xy = undefined; | 29118 | var xy = void 0; |
28296 | var diff = undefined; | 29119 | var diff = void 0; |
28297 | var p1 = undefined; | 29120 | var p1 = void 0; |
28298 | var p2 = undefined; | 29121 | var p2 = void 0; |
28299 | 29122 | ||
28300 | xy = { | 29123 | xy = { |
28301 | left: elRegion.left, | 29124 | left: elRegion.left, |
28302 | top: elRegion.top | 29125 | top: elRegion.top |
28303 | }; | 29126 | }; |
28304 | 29127 | ||
28305 | p1 = (0, _getAlignOffset2['default'])(refNodeRegion, points[1]); | 29128 | p1 = (0, _getAlignOffset2["default"])(refNodeRegion, points[1]); |
28306 | p2 = (0, _getAlignOffset2['default'])(elRegion, points[0]); | 29129 | p2 = (0, _getAlignOffset2["default"])(elRegion, points[0]); |
28307 | 29130 | ||
28308 | diff = [p2.left - p1.left, p2.top - p1.top]; | 29131 | diff = [p2.left - p1.left, p2.top - p1.top]; |
28309 | 29132 | ||
@@ -28313,29 +29136,29 @@ | |||
28313 | }; | 29136 | }; |
28314 | } | 29137 | } |
28315 | 29138 | ||
28316 | exports['default'] = getElFuturePos; | 29139 | exports["default"] = getElFuturePos; |
28317 | module.exports = exports['default']; | 29140 | module.exports = exports['default']; |
28318 | 29141 | ||
28319 | /***/ }, | 29142 | /***/ }, |
28320 | /* 198 */ | 29143 | /* 234 */ |
28321 | /***/ function(module, exports) { | 29144 | /***/ function(module, exports) { |
28322 | 29145 | ||
28323 | /** | ||
28324 | * 获取 node 上的 align 对齐点 相对于页面的坐标 | ||
28325 | */ | ||
28326 | |||
28327 | 'use strict'; | 29146 | 'use strict'; |
28328 | 29147 | ||
28329 | Object.defineProperty(exports, '__esModule', { | 29148 | Object.defineProperty(exports, "__esModule", { |
28330 | value: true | 29149 | value: true |
28331 | }); | 29150 | }); |
29151 | /** | ||
29152 | * 获取 node 上的 align 对齐点 相对于页面的坐标 | ||
29153 | */ | ||
29154 | |||
28332 | function getAlignOffset(region, align) { | 29155 | function getAlignOffset(region, align) { |
28333 | var V = align.charAt(0); | 29156 | var V = align.charAt(0); |
28334 | var H = align.charAt(1); | 29157 | var H = align.charAt(1); |
28335 | var w = region.width; | 29158 | var w = region.width; |
28336 | var h = region.height; | 29159 | var h = region.height; |
28337 | var x = undefined; | 29160 | var x = void 0; |
28338 | var y = undefined; | 29161 | var y = void 0; |
28339 | 29162 | ||
28340 | x = region.left; | 29163 | x = region.left; |
28341 | y = region.top; | 29164 | y = region.top; |
@@ -28358,11 +29181,11 @@ | |||
28358 | }; | 29181 | }; |
28359 | } | 29182 | } |
28360 | 29183 | ||
28361 | exports['default'] = getAlignOffset; | 29184 | exports["default"] = getAlignOffset; |
28362 | module.exports = exports['default']; | 29185 | module.exports = exports['default']; |
28363 | 29186 | ||
28364 | /***/ }, | 29187 | /***/ }, |
28365 | /* 199 */ | 29188 | /* 235 */ |
28366 | /***/ function(module, exports) { | 29189 | /***/ function(module, exports) { |
28367 | 29190 | ||
28368 | "use strict"; | 29191 | "use strict"; |
@@ -28379,16 +29202,16 @@ | |||
28379 | module.exports = exports['default']; | 29202 | module.exports = exports['default']; |
28380 | 29203 | ||
28381 | /***/ }, | 29204 | /***/ }, |
28382 | /* 200 */ | 29205 | /* 236 */ |
28383 | /***/ function(module, exports, __webpack_require__) { | 29206 | /***/ function(module, exports, __webpack_require__) { |
28384 | 29207 | ||
28385 | 'use strict'; | 29208 | 'use strict'; |
28386 | 29209 | ||
28387 | // export this package's api | 29210 | // export this package's api |
28388 | module.exports = __webpack_require__(201); | 29211 | module.exports = __webpack_require__(237); |
28389 | 29212 | ||
28390 | /***/ }, | 29213 | /***/ }, |
28391 | /* 201 */ | 29214 | /* 237 */ |
28392 | /***/ function(module, exports, __webpack_require__) { | 29215 | /***/ function(module, exports, __webpack_require__) { |
28393 | 29216 | ||
28394 | 'use strict'; | 29217 | 'use strict'; |
@@ -28401,13 +29224,13 @@ | |||
28401 | 29224 | ||
28402 | var _react2 = _interopRequireDefault(_react); | 29225 | var _react2 = _interopRequireDefault(_react); |
28403 | 29226 | ||
28404 | var _ChildrenUtils = __webpack_require__(202); | 29227 | var _ChildrenUtils = __webpack_require__(238); |
28405 | 29228 | ||
28406 | var _AnimateChild = __webpack_require__(203); | 29229 | var _AnimateChild = __webpack_require__(239); |
28407 | 29230 | ||
28408 | var _AnimateChild2 = _interopRequireDefault(_AnimateChild); | 29231 | var _AnimateChild2 = _interopRequireDefault(_AnimateChild); |
28409 | 29232 | ||
28410 | var _util = __webpack_require__(208); | 29233 | var _util = __webpack_require__(244); |
28411 | 29234 | ||
28412 | var _util2 = _interopRequireDefault(_util); | 29235 | var _util2 = _interopRequireDefault(_util); |
28413 | 29236 | ||
@@ -28720,7 +29543,7 @@ | |||
28720 | module.exports = exports['default']; | 29543 | module.exports = exports['default']; |
28721 | 29544 | ||
28722 | /***/ }, | 29545 | /***/ }, |
28723 | /* 202 */ | 29546 | /* 238 */ |
28724 | /***/ function(module, exports, __webpack_require__) { | 29547 | /***/ function(module, exports, __webpack_require__) { |
28725 | 29548 | ||
28726 | 'use strict'; | 29549 | 'use strict'; |
@@ -28842,7 +29665,7 @@ | |||
28842 | } | 29665 | } |
28843 | 29666 | ||
28844 | /***/ }, | 29667 | /***/ }, |
28845 | /* 203 */ | 29668 | /* 239 */ |
28846 | /***/ function(module, exports, __webpack_require__) { | 29669 | /***/ function(module, exports, __webpack_require__) { |
28847 | 29670 | ||
28848 | 'use strict'; | 29671 | 'use strict'; |
@@ -28857,15 +29680,15 @@ | |||
28857 | 29680 | ||
28858 | var _react2 = _interopRequireDefault(_react); | 29681 | var _react2 = _interopRequireDefault(_react); |
28859 | 29682 | ||
28860 | var _reactDom = __webpack_require__(37); | 29683 | var _reactDom = __webpack_require__(36); |
28861 | 29684 | ||
28862 | var _reactDom2 = _interopRequireDefault(_reactDom); | 29685 | var _reactDom2 = _interopRequireDefault(_reactDom); |
28863 | 29686 | ||
28864 | var _cssAnimation = __webpack_require__(204); | 29687 | var _cssAnimation = __webpack_require__(240); |
28865 | 29688 | ||
28866 | var _cssAnimation2 = _interopRequireDefault(_cssAnimation); | 29689 | var _cssAnimation2 = _interopRequireDefault(_cssAnimation); |
28867 | 29690 | ||
28868 | var _util = __webpack_require__(208); | 29691 | var _util = __webpack_require__(244); |
28869 | 29692 | ||
28870 | var _util2 = _interopRequireDefault(_util); | 29693 | var _util2 = _interopRequireDefault(_util); |
28871 | 29694 | ||
@@ -28953,7 +29776,7 @@ | |||
28953 | module.exports = exports['default']; | 29776 | module.exports = exports['default']; |
28954 | 29777 | ||
28955 | /***/ }, | 29778 | /***/ }, |
28956 | /* 204 */ | 29779 | /* 240 */ |
28957 | /***/ function(module, exports, __webpack_require__) { | 29780 | /***/ function(module, exports, __webpack_require__) { |
28958 | 29781 | ||
28959 | 'use strict'; | 29782 | 'use strict'; |
@@ -28964,11 +29787,11 @@ | |||
28964 | 29787 | ||
28965 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; | 29788 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; |
28966 | 29789 | ||
28967 | var _Event = __webpack_require__(205); | 29790 | var _Event = __webpack_require__(241); |
28968 | 29791 | ||
28969 | var _Event2 = _interopRequireDefault(_Event); | 29792 | var _Event2 = _interopRequireDefault(_Event); |
28970 | 29793 | ||
28971 | var _componentClasses = __webpack_require__(206); | 29794 | var _componentClasses = __webpack_require__(242); |
28972 | 29795 | ||
28973 | var _componentClasses2 = _interopRequireDefault(_componentClasses); | 29796 | var _componentClasses2 = _interopRequireDefault(_componentClasses); |
28974 | 29797 | ||
@@ -29148,7 +29971,7 @@ | |||
29148 | module.exports = exports['default']; | 29971 | module.exports = exports['default']; |
29149 | 29972 | ||
29150 | /***/ }, | 29973 | /***/ }, |
29151 | /* 205 */ | 29974 | /* 241 */ |
29152 | /***/ function(module, exports) { | 29975 | /***/ function(module, exports) { |
29153 | 29976 | ||
29154 | 'use strict'; | 29977 | 'use strict'; |
@@ -29241,7 +30064,7 @@ | |||
29241 | module.exports = exports['default']; | 30064 | module.exports = exports['default']; |
29242 | 30065 | ||
29243 | /***/ }, | 30066 | /***/ }, |
29244 | /* 206 */ | 30067 | /* 242 */ |
29245 | /***/ function(module, exports, __webpack_require__) { | 30068 | /***/ function(module, exports, __webpack_require__) { |
29246 | 30069 | ||
29247 | /** | 30070 | /** |
@@ -29249,9 +30072,9 @@ | |||
29249 | */ | 30072 | */ |
29250 | 30073 | ||
29251 | try { | 30074 | try { |
29252 | var index = __webpack_require__(207); | 30075 | var index = __webpack_require__(243); |
29253 | } catch (err) { | 30076 | } catch (err) { |
29254 | var index = __webpack_require__(207); | 30077 | var index = __webpack_require__(243); |
29255 | } | 30078 | } |
29256 | 30079 | ||
29257 | /** | 30080 | /** |
@@ -29438,7 +30261,7 @@ | |||
29438 | 30261 | ||
29439 | 30262 | ||
29440 | /***/ }, | 30263 | /***/ }, |
29441 | /* 207 */ | 30264 | /* 243 */ |
29442 | /***/ function(module, exports) { | 30265 | /***/ function(module, exports) { |
29443 | 30266 | ||
29444 | module.exports = function(arr, obj){ | 30267 | module.exports = function(arr, obj){ |
@@ -29450,7 +30273,7 @@ | |||
29450 | }; | 30273 | }; |
29451 | 30274 | ||
29452 | /***/ }, | 30275 | /***/ }, |
29453 | /* 208 */ | 30276 | /* 244 */ |
29454 | /***/ function(module, exports) { | 30277 | /***/ function(module, exports) { |
29455 | 30278 | ||
29456 | "use strict"; | 30279 | "use strict"; |
@@ -29482,7 +30305,7 @@ | |||
29482 | module.exports = exports['default']; | 30305 | module.exports = exports['default']; |
29483 | 30306 | ||
29484 | /***/ }, | 30307 | /***/ }, |
29485 | /* 209 */ | 30308 | /* 245 */ |
29486 | /***/ function(module, exports, __webpack_require__) { | 30309 | /***/ function(module, exports, __webpack_require__) { |
29487 | 30310 | ||
29488 | 'use strict'; | 30311 | 'use strict'; |
@@ -29495,7 +30318,7 @@ | |||
29495 | 30318 | ||
29496 | var _react2 = _interopRequireDefault(_react); | 30319 | var _react2 = _interopRequireDefault(_react); |
29497 | 30320 | ||
29498 | var _LazyRenderBox = __webpack_require__(210); | 30321 | var _LazyRenderBox = __webpack_require__(246); |
29499 | 30322 | ||
29500 | var _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox); | 30323 | var _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox); |
29501 | 30324 | ||
@@ -29539,7 +30362,7 @@ | |||
29539 | module.exports = exports['default']; | 30362 | module.exports = exports['default']; |
29540 | 30363 | ||
29541 | /***/ }, | 30364 | /***/ }, |
29542 | /* 210 */ | 30365 | /* 246 */ |
29543 | /***/ function(module, exports, __webpack_require__) { | 30366 | /***/ function(module, exports, __webpack_require__) { |
29544 | 30367 | ||
29545 | 'use strict'; | 30368 | 'use strict'; |
@@ -29548,14 +30371,16 @@ | |||
29548 | value: true | 30371 | value: true |
29549 | }); | 30372 | }); |
29550 | 30373 | ||
30374 | var _objectWithoutProperties2 = __webpack_require__(247); | ||
30375 | |||
30376 | var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); | ||
30377 | |||
29551 | var _react = __webpack_require__(3); | 30378 | var _react = __webpack_require__(3); |
29552 | 30379 | ||
29553 | var _react2 = _interopRequireDefault(_react); | 30380 | var _react2 = _interopRequireDefault(_react); |
29554 | 30381 | ||
29555 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | 30382 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } |
29556 | 30383 | ||
29557 | function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | ||
29558 | |||
29559 | var LazyRenderBox = _react2["default"].createClass({ | 30384 | var LazyRenderBox = _react2["default"].createClass({ |
29560 | displayName: 'LazyRenderBox', | 30385 | displayName: 'LazyRenderBox', |
29561 | 30386 | ||
@@ -29572,8 +30397,8 @@ | |||
29572 | var _props = this.props; | 30397 | var _props = this.props; |
29573 | var hiddenClassName = _props.hiddenClassName; | 30398 | var hiddenClassName = _props.hiddenClassName; |
29574 | var visible = _props.visible; | 30399 | var visible = _props.visible; |
30400 | var props = (0, _objectWithoutProperties3["default"])(_props, ['hiddenClassName', 'visible']); | ||
29575 | 30401 | ||
29576 | var props = _objectWithoutProperties(_props, ['hiddenClassName', 'visible']); | ||
29577 | 30402 | ||
29578 | if (hiddenClassName || _react2["default"].Children.count(props.children) > 1) { | 30403 | if (hiddenClassName || _react2["default"].Children.count(props.children) > 1) { |
29579 | if (!visible && hiddenClassName) { | 30404 | if (!visible && hiddenClassName) { |
@@ -29590,26 +30415,51 @@ | |||
29590 | module.exports = exports['default']; | 30415 | module.exports = exports['default']; |
29591 | 30416 | ||
29592 | /***/ }, | 30417 | /***/ }, |
29593 | /* 211 */ | 30418 | /* 247 */ |
29594 | /***/ function(module, exports) { | 30419 | /***/ function(module, exports) { |
29595 | 30420 | ||
30421 | "use strict"; | ||
30422 | |||
30423 | exports.__esModule = true; | ||
30424 | |||
30425 | exports.default = function (obj, keys) { | ||
30426 | var target = {}; | ||
30427 | |||
30428 | for (var i in obj) { | ||
30429 | if (keys.indexOf(i) >= 0) continue; | ||
30430 | if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; | ||
30431 | target[i] = obj[i]; | ||
30432 | } | ||
30433 | |||
30434 | return target; | ||
30435 | }; | ||
30436 | |||
30437 | /***/ }, | ||
30438 | /* 248 */ | ||
30439 | /***/ function(module, exports, __webpack_require__) { | ||
30440 | |||
29596 | 'use strict'; | 30441 | 'use strict'; |
29597 | 30442 | ||
29598 | Object.defineProperty(exports, "__esModule", { | 30443 | Object.defineProperty(exports, "__esModule", { |
29599 | value: true | 30444 | value: true |
29600 | }); | 30445 | }); |
29601 | 30446 | ||
29602 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | 30447 | var _extends2 = __webpack_require__(180); |
30448 | |||
30449 | var _extends3 = _interopRequireDefault(_extends2); | ||
29603 | 30450 | ||
29604 | exports.getAlignFromPlacement = getAlignFromPlacement; | 30451 | exports.getAlignFromPlacement = getAlignFromPlacement; |
29605 | exports.getPopupClassNameFromAlign = getPopupClassNameFromAlign; | 30452 | exports.getPopupClassNameFromAlign = getPopupClassNameFromAlign; |
30453 | |||
30454 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
30455 | |||
29606 | function isPointsEq(a1, a2) { | 30456 | function isPointsEq(a1, a2) { |
29607 | return a1[0] === a2[0] && a1[1] === a2[1]; | 30457 | return a1[0] === a2[0] && a1[1] === a2[1]; |
29608 | } | 30458 | } |
29609 | 30459 | ||
29610 | function getAlignFromPlacement(builtinPlacements, placementStr, align) { | 30460 | function getAlignFromPlacement(builtinPlacements, placementStr, align) { |
29611 | var baseAlign = builtinPlacements[placementStr] || {}; | 30461 | var baseAlign = builtinPlacements[placementStr] || {}; |
29612 | return _extends({}, baseAlign, align); | 30462 | return (0, _extends3["default"])({}, baseAlign, align); |
29613 | } | 30463 | } |
29614 | 30464 | ||
29615 | function getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) { | 30465 | function getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) { |
@@ -29625,7 +30475,7 @@ | |||
29625 | } | 30475 | } |
29626 | 30476 | ||
29627 | /***/ }, | 30477 | /***/ }, |
29628 | /* 212 */ | 30478 | /* 249 */ |
29629 | /***/ function(module, exports, __webpack_require__) { | 30479 | /***/ function(module, exports, __webpack_require__) { |
29630 | 30480 | ||
29631 | 'use strict'; | 30481 | 'use strict'; |
@@ -29638,7 +30488,7 @@ | |||
29638 | 30488 | ||
29639 | exports["default"] = getContainerRenderMixin; | 30489 | exports["default"] = getContainerRenderMixin; |
29640 | 30490 | ||
29641 | var _reactDom = __webpack_require__(37); | 30491 | var _reactDom = __webpack_require__(36); |
29642 | 30492 | ||
29643 | var _reactDom2 = _interopRequireDefault(_reactDom); | 30493 | var _reactDom2 = _interopRequireDefault(_reactDom); |
29644 | 30494 | ||
@@ -29724,7 +30574,7 @@ | |||
29724 | module.exports = exports['default']; | 30574 | module.exports = exports['default']; |
29725 | 30575 | ||
29726 | /***/ }, | 30576 | /***/ }, |
29727 | /* 213 */ | 30577 | /* 250 */ |
29728 | /***/ function(module, exports, __webpack_require__) { | 30578 | /***/ function(module, exports, __webpack_require__) { |
29729 | 30579 | ||
29730 | 'use strict'; | 30580 | 'use strict'; |
@@ -29733,7 +30583,7 @@ | |||
29733 | value: true | 30583 | value: true |
29734 | }); | 30584 | }); |
29735 | 30585 | ||
29736 | var _defineProperty2 = __webpack_require__(214); | 30586 | var _defineProperty2 = __webpack_require__(251); |
29737 | 30587 | ||
29738 | var _defineProperty3 = _interopRequireDefault(_defineProperty2); | 30588 | var _defineProperty3 = _interopRequireDefault(_defineProperty2); |
29739 | 30589 | ||
@@ -29741,19 +30591,19 @@ | |||
29741 | 30591 | ||
29742 | var _react2 = _interopRequireDefault(_react); | 30592 | var _react2 = _interopRequireDefault(_react); |
29743 | 30593 | ||
29744 | var _Header = __webpack_require__(233); | 30594 | var _Header = __webpack_require__(255); |
29745 | 30595 | ||
29746 | var _Header2 = _interopRequireDefault(_Header); | 30596 | var _Header2 = _interopRequireDefault(_Header); |
29747 | 30597 | ||
29748 | var _Combobox = __webpack_require__(234); | 30598 | var _Combobox = __webpack_require__(256); |
29749 | 30599 | ||
29750 | var _Combobox2 = _interopRequireDefault(_Combobox); | 30600 | var _Combobox2 = _interopRequireDefault(_Combobox); |
29751 | 30601 | ||
29752 | var _moment = __webpack_require__(177); | 30602 | var _moment = __webpack_require__(174); |
29753 | 30603 | ||
29754 | var _moment2 = _interopRequireDefault(_moment); | 30604 | var _moment2 = _interopRequireDefault(_moment); |
29755 | 30605 | ||
29756 | var _classnames = __webpack_require__(236); | 30606 | var _classnames = __webpack_require__(258); |
29757 | 30607 | ||
29758 | var _classnames2 = _interopRequireDefault(_classnames); | 30608 | var _classnames2 = _interopRequireDefault(_classnames); |
29759 | 30609 | ||
@@ -29790,6 +30640,7 @@ | |||
29790 | onEsc: _react.PropTypes.func, | 30640 | onEsc: _react.PropTypes.func, |
29791 | allowEmpty: _react.PropTypes.bool, | 30641 | allowEmpty: _react.PropTypes.bool, |
29792 | showHour: _react.PropTypes.bool, | 30642 | showHour: _react.PropTypes.bool, |
30643 | showMinute: _react.PropTypes.bool, | ||
29793 | showSecond: _react.PropTypes.bool, | 30644 | showSecond: _react.PropTypes.bool, |
29794 | onClear: _react.PropTypes.func, | 30645 | onClear: _react.PropTypes.func, |
29795 | addon: _react.PropTypes.func | 30646 | addon: _react.PropTypes.func |
@@ -29837,25 +30688,26 @@ | |||
29837 | render: function render() { | 30688 | render: function render() { |
29838 | var _classNames; | 30689 | var _classNames; |
29839 | 30690 | ||
29840 | var _props = this.props; | 30691 | var _props = this.props, |
29841 | var prefixCls = _props.prefixCls; | 30692 | prefixCls = _props.prefixCls, |
29842 | var className = _props.className; | 30693 | className = _props.className, |
29843 | var placeholder = _props.placeholder; | 30694 | placeholder = _props.placeholder, |
29844 | var disabledHours = _props.disabledHours; | 30695 | disabledHours = _props.disabledHours, |
29845 | var disabledMinutes = _props.disabledMinutes; | 30696 | disabledMinutes = _props.disabledMinutes, |
29846 | var disabledSeconds = _props.disabledSeconds; | 30697 | disabledSeconds = _props.disabledSeconds, |
29847 | var hideDisabledOptions = _props.hideDisabledOptions; | 30698 | hideDisabledOptions = _props.hideDisabledOptions, |
29848 | var allowEmpty = _props.allowEmpty; | 30699 | allowEmpty = _props.allowEmpty, |
29849 | var showHour = _props.showHour; | 30700 | showHour = _props.showHour, |
29850 | var showSecond = _props.showSecond; | 30701 | showMinute = _props.showMinute, |
29851 | var format = _props.format; | 30702 | showSecond = _props.showSecond, |
29852 | var defaultOpenValue = _props.defaultOpenValue; | 30703 | format = _props.format, |
29853 | var clearText = _props.clearText; | 30704 | defaultOpenValue = _props.defaultOpenValue, |
29854 | var onEsc = _props.onEsc; | 30705 | clearText = _props.clearText, |
29855 | var addon = _props.addon; | 30706 | onEsc = _props.onEsc, |
29856 | var _state = this.state; | 30707 | addon = _props.addon; |
29857 | var value = _state.value; | 30708 | var _state = this.state, |
29858 | var currentSelectPanel = _state.currentSelectPanel; | 30709 | value = _state.value, |
30710 | currentSelectPanel = _state.currentSelectPanel; | ||
29859 | 30711 | ||
29860 | var disabledHourOptions = disabledHours(); | 30712 | var disabledHourOptions = disabledHours(); |
29861 | var disabledMinuteOptions = disabledMinutes(value ? value.hour() : null); | 30713 | var disabledMinuteOptions = disabledMinutes(value ? value.hour() : null); |
@@ -29893,6 +30745,7 @@ | |||
29893 | format: format, | 30745 | format: format, |
29894 | onChange: this.onChange, | 30746 | onChange: this.onChange, |
29895 | showHour: showHour, | 30747 | showHour: showHour, |
30748 | showMinute: showMinute, | ||
29896 | showSecond: showSecond, | 30749 | showSecond: showSecond, |
29897 | hourOptions: hourOptions, | 30750 | hourOptions: hourOptions, |
29898 | minuteOptions: minuteOptions, | 30751 | minuteOptions: minuteOptions, |
@@ -29911,14 +30764,14 @@ | |||
29911 | module.exports = exports['default']; | 30764 | module.exports = exports['default']; |
29912 | 30765 | ||
29913 | /***/ }, | 30766 | /***/ }, |
29914 | /* 214 */ | 30767 | /* 251 */ |
29915 | /***/ function(module, exports, __webpack_require__) { | 30768 | /***/ function(module, exports, __webpack_require__) { |
29916 | 30769 | ||
29917 | "use strict"; | 30770 | "use strict"; |
29918 | 30771 | ||
29919 | exports.__esModule = true; | 30772 | exports.__esModule = true; |
29920 | 30773 | ||
29921 | var _defineProperty = __webpack_require__(215); | 30774 | var _defineProperty = __webpack_require__(252); |
29922 | 30775 | ||
29923 | var _defineProperty2 = _interopRequireDefault(_defineProperty); | 30776 | var _defineProperty2 = _interopRequireDefault(_defineProperty); |
29924 | 30777 | ||
@@ -29940,270 +30793,31 @@ | |||
29940 | }; | 30793 | }; |
29941 | 30794 | ||
29942 | /***/ }, | 30795 | /***/ }, |
29943 | /* 215 */ | 30796 | /* 252 */ |
29944 | /***/ function(module, exports, __webpack_require__) { | 30797 | /***/ function(module, exports, __webpack_require__) { |
29945 | 30798 | ||
29946 | module.exports = { "default": __webpack_require__(216), __esModule: true }; | 30799 | module.exports = { "default": __webpack_require__(253), __esModule: true }; |
29947 | 30800 | ||
29948 | /***/ }, | 30801 | /***/ }, |
29949 | /* 216 */ | 30802 | /* 253 */ |
29950 | /***/ function(module, exports, __webpack_require__) { | 30803 | /***/ function(module, exports, __webpack_require__) { |
29951 | 30804 | ||
29952 | __webpack_require__(217); | 30805 | __webpack_require__(254); |
29953 | var $Object = __webpack_require__(220).Object; | 30806 | var $Object = __webpack_require__(186).Object; |
29954 | module.exports = function defineProperty(it, key, desc){ | 30807 | module.exports = function defineProperty(it, key, desc){ |
29955 | return $Object.defineProperty(it, key, desc); | 30808 | return $Object.defineProperty(it, key, desc); |
29956 | }; | 30809 | }; |
29957 | 30810 | ||
29958 | /***/ }, | 30811 | /***/ }, |
29959 | /* 217 */ | 30812 | /* 254 */ |
29960 | /***/ function(module, exports, __webpack_require__) { | 30813 | /***/ function(module, exports, __webpack_require__) { |
29961 | 30814 | ||
29962 | var $export = __webpack_require__(218); | 30815 | var $export = __webpack_require__(184); |
29963 | // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) | 30816 | // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) |
29964 | $export($export.S + $export.F * !__webpack_require__(228), 'Object', {defineProperty: __webpack_require__(224).f}); | 30817 | $export($export.S + $export.F * !__webpack_require__(194), 'Object', {defineProperty: __webpack_require__(190).f}); |
29965 | 30818 | ||
29966 | /***/ }, | 30819 | /***/ }, |
29967 | /* 218 */ | 30820 | /* 255 */ |
29968 | /***/ function(module, exports, __webpack_require__) { | ||
29969 | |||
29970 | var global = __webpack_require__(219) | ||
29971 | , core = __webpack_require__(220) | ||
29972 | , ctx = __webpack_require__(221) | ||
29973 | , hide = __webpack_require__(223) | ||
29974 | , PROTOTYPE = 'prototype'; | ||
29975 | |||
29976 | var $export = function(type, name, source){ | ||
29977 | var IS_FORCED = type & $export.F | ||
29978 | , IS_GLOBAL = type & $export.G | ||
29979 | , IS_STATIC = type & $export.S | ||
29980 | , IS_PROTO = type & $export.P | ||
29981 | , IS_BIND = type & $export.B | ||
29982 | , IS_WRAP = type & $export.W | ||
29983 | , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) | ||
29984 | , expProto = exports[PROTOTYPE] | ||
29985 | , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] | ||
29986 | , key, own, out; | ||
29987 | if(IS_GLOBAL)source = name; | ||
29988 | for(key in source){ | ||
29989 | // contains in native | ||
29990 | own = !IS_FORCED && target && target[key] !== undefined; | ||
29991 | if(own && key in exports)continue; | ||
29992 | // export native or passed | ||
29993 | out = own ? target[key] : source[key]; | ||
29994 | // prevent global pollution for namespaces | ||
29995 | exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] | ||
29996 | // bind timers to global for call from export context | ||
29997 | : IS_BIND && own ? ctx(out, global) | ||
29998 | // wrap global constructors for prevent change them in library | ||
29999 | : IS_WRAP && target[key] == out ? (function(C){ | ||
30000 | var F = function(a, b, c){ | ||
30001 | if(this instanceof C){ | ||
30002 | switch(arguments.length){ | ||
30003 | case 0: return new C; | ||
30004 | case 1: return new C(a); | ||
30005 | case 2: return new C(a, b); | ||
30006 | } return new C(a, b, c); | ||
30007 | } return C.apply(this, arguments); | ||
30008 | }; | ||
30009 | F[PROTOTYPE] = C[PROTOTYPE]; | ||
30010 | return F; | ||
30011 | // make static versions for prototype methods | ||
30012 | })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; | ||
30013 | // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% | ||
30014 | if(IS_PROTO){ | ||
30015 | (exports.virtual || (exports.virtual = {}))[key] = out; | ||
30016 | // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% | ||
30017 | if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); | ||
30018 | } | ||
30019 | } | ||
30020 | }; | ||
30021 | // type bitmap | ||
30022 | $export.F = 1; // forced | ||
30023 | $export.G = 2; // global | ||
30024 | $export.S = 4; // static | ||
30025 | $export.P = 8; // proto | ||
30026 | $export.B = 16; // bind | ||
30027 | $export.W = 32; // wrap | ||
30028 | $export.U = 64; // safe | ||
30029 | $export.R = 128; // real proto method for `library` | ||
30030 | module.exports = $export; | ||
30031 | |||
30032 | /***/ }, | ||
30033 | /* 219 */ | ||
30034 | /***/ function(module, exports) { | ||
30035 | |||
30036 | // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 | ||
30037 | var global = module.exports = typeof window != 'undefined' && window.Math == Math | ||
30038 | ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); | ||
30039 | if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef | ||
30040 | |||
30041 | /***/ }, | ||
30042 | /* 220 */ | ||
30043 | /***/ function(module, exports) { | ||
30044 | |||
30045 | var core = module.exports = {version: '2.4.0'}; | ||
30046 | if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef | ||
30047 | |||
30048 | /***/ }, | ||
30049 | /* 221 */ | ||
30050 | /***/ function(module, exports, __webpack_require__) { | ||
30051 | |||
30052 | // optional / simple context binding | ||
30053 | var aFunction = __webpack_require__(222); | ||
30054 | module.exports = function(fn, that, length){ | ||
30055 | aFunction(fn); | ||
30056 | if(that === undefined)return fn; | ||
30057 | switch(length){ | ||
30058 | case 1: return function(a){ | ||
30059 | return fn.call(that, a); | ||
30060 | }; | ||
30061 | case 2: return function(a, b){ | ||
30062 | return fn.call(that, a, b); | ||
30063 | }; | ||
30064 | case 3: return function(a, b, c){ | ||
30065 | return fn.call(that, a, b, c); | ||
30066 | }; | ||
30067 | } | ||
30068 | return function(/* ...args */){ | ||
30069 | return fn.apply(that, arguments); | ||
30070 | }; | ||
30071 | }; | ||
30072 | |||
30073 | /***/ }, | ||
30074 | /* 222 */ | ||
30075 | /***/ function(module, exports) { | ||
30076 | |||
30077 | module.exports = function(it){ | ||
30078 | if(typeof it != 'function')throw TypeError(it + ' is not a function!'); | ||
30079 | return it; | ||
30080 | }; | ||
30081 | |||
30082 | /***/ }, | ||
30083 | /* 223 */ | ||
30084 | /***/ function(module, exports, __webpack_require__) { | ||
30085 | |||
30086 | var dP = __webpack_require__(224) | ||
30087 | , createDesc = __webpack_require__(232); | ||
30088 | module.exports = __webpack_require__(228) ? function(object, key, value){ | ||
30089 | return dP.f(object, key, createDesc(1, value)); | ||
30090 | } : function(object, key, value){ | ||
30091 | object[key] = value; | ||
30092 | return object; | ||
30093 | }; | ||
30094 | |||
30095 | /***/ }, | ||
30096 | /* 224 */ | ||
30097 | /***/ function(module, exports, __webpack_require__) { | ||
30098 | |||
30099 | var anObject = __webpack_require__(225) | ||
30100 | , IE8_DOM_DEFINE = __webpack_require__(227) | ||
30101 | , toPrimitive = __webpack_require__(231) | ||
30102 | , dP = Object.defineProperty; | ||
30103 | |||
30104 | exports.f = __webpack_require__(228) ? Object.defineProperty : function defineProperty(O, P, Attributes){ | ||
30105 | anObject(O); | ||
30106 | P = toPrimitive(P, true); | ||
30107 | anObject(Attributes); | ||
30108 | if(IE8_DOM_DEFINE)try { | ||
30109 | return dP(O, P, Attributes); | ||
30110 | } catch(e){ /* empty */ } | ||
30111 | if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); | ||
30112 | if('value' in Attributes)O[P] = Attributes.value; | ||
30113 | return O; | ||
30114 | }; | ||
30115 | |||
30116 | /***/ }, | ||
30117 | /* 225 */ | ||
30118 | /***/ function(module, exports, __webpack_require__) { | ||
30119 | |||
30120 | var isObject = __webpack_require__(226); | ||
30121 | module.exports = function(it){ | ||
30122 | if(!isObject(it))throw TypeError(it + ' is not an object!'); | ||
30123 | return it; | ||
30124 | }; | ||
30125 | |||
30126 | /***/ }, | ||
30127 | /* 226 */ | ||
30128 | /***/ function(module, exports) { | ||
30129 | |||
30130 | module.exports = function(it){ | ||
30131 | return typeof it === 'object' ? it !== null : typeof it === 'function'; | ||
30132 | }; | ||
30133 | |||
30134 | /***/ }, | ||
30135 | /* 227 */ | ||
30136 | /***/ function(module, exports, __webpack_require__) { | ||
30137 | |||
30138 | module.exports = !__webpack_require__(228) && !__webpack_require__(229)(function(){ | ||
30139 | return Object.defineProperty(__webpack_require__(230)('div'), 'a', {get: function(){ return 7; }}).a != 7; | ||
30140 | }); | ||
30141 | |||
30142 | /***/ }, | ||
30143 | /* 228 */ | ||
30144 | /***/ function(module, exports, __webpack_require__) { | ||
30145 | |||
30146 | // Thank's IE8 for his funny defineProperty | ||
30147 | module.exports = !__webpack_require__(229)(function(){ | ||
30148 | return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; | ||
30149 | }); | ||
30150 | |||
30151 | /***/ }, | ||
30152 | /* 229 */ | ||
30153 | /***/ function(module, exports) { | ||
30154 | |||
30155 | module.exports = function(exec){ | ||
30156 | try { | ||
30157 | return !!exec(); | ||
30158 | } catch(e){ | ||
30159 | return true; | ||
30160 | } | ||
30161 | }; | ||
30162 | |||
30163 | /***/ }, | ||
30164 | /* 230 */ | ||
30165 | /***/ function(module, exports, __webpack_require__) { | ||
30166 | |||
30167 | var isObject = __webpack_require__(226) | ||
30168 | , document = __webpack_require__(219).document | ||
30169 | // in old IE typeof document.createElement is 'object' | ||
30170 | , is = isObject(document) && isObject(document.createElement); | ||
30171 | module.exports = function(it){ | ||
30172 | return is ? document.createElement(it) : {}; | ||
30173 | }; | ||
30174 | |||
30175 | /***/ }, | ||
30176 | /* 231 */ | ||
30177 | /***/ function(module, exports, __webpack_require__) { | ||
30178 | |||
30179 | // 7.1.1 ToPrimitive(input [, PreferredType]) | ||
30180 | var isObject = __webpack_require__(226); | ||
30181 | // instead of the ES6 spec version, we didn't implement @@toPrimitive case | ||
30182 | // and the second argument - flag - preferred type is a string | ||
30183 | module.exports = function(it, S){ | ||
30184 | if(!isObject(it))return it; | ||
30185 | var fn, val; | ||
30186 | if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; | ||
30187 | if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; | ||
30188 | if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; | ||
30189 | throw TypeError("Can't convert object to primitive value"); | ||
30190 | }; | ||
30191 | |||
30192 | /***/ }, | ||
30193 | /* 232 */ | ||
30194 | /***/ function(module, exports) { | ||
30195 | |||
30196 | module.exports = function(bitmap, value){ | ||
30197 | return { | ||
30198 | enumerable : !(bitmap & 1), | ||
30199 | configurable: !(bitmap & 2), | ||
30200 | writable : !(bitmap & 4), | ||
30201 | value : value | ||
30202 | }; | ||
30203 | }; | ||
30204 | |||
30205 | /***/ }, | ||
30206 | /* 233 */ | ||
30207 | /***/ function(module, exports, __webpack_require__) { | 30821 | /***/ function(module, exports, __webpack_require__) { |
30208 | 30822 | ||
30209 | 'use strict'; | 30823 | 'use strict'; |
@@ -30216,7 +30830,7 @@ | |||
30216 | 30830 | ||
30217 | var _react2 = _interopRequireDefault(_react); | 30831 | var _react2 = _interopRequireDefault(_react); |
30218 | 30832 | ||
30219 | var _moment = __webpack_require__(177); | 30833 | var _moment = __webpack_require__(174); |
30220 | 30834 | ||
30221 | var _moment2 = _interopRequireDefault(_moment); | 30835 | var _moment2 = _interopRequireDefault(_moment); |
30222 | 30836 | ||
@@ -30247,9 +30861,9 @@ | |||
30247 | }, | 30861 | }, |
30248 | 30862 | ||
30249 | getInitialState: function getInitialState() { | 30863 | getInitialState: function getInitialState() { |
30250 | var _props = this.props; | 30864 | var _props = this.props, |
30251 | var value = _props.value; | 30865 | value = _props.value, |
30252 | var format = _props.format; | 30866 | format = _props.format; |
30253 | 30867 | ||
30254 | return { | 30868 | return { |
30255 | str: value && value.format(format) || '', | 30869 | str: value && value.format(format) || '', |
@@ -30257,8 +30871,8 @@ | |||
30257 | }; | 30871 | }; |
30258 | }, | 30872 | }, |
30259 | componentWillReceiveProps: function componentWillReceiveProps(nextProps) { | 30873 | componentWillReceiveProps: function componentWillReceiveProps(nextProps) { |
30260 | var value = nextProps.value; | 30874 | var value = nextProps.value, |
30261 | var format = nextProps.format; | 30875 | format = nextProps.format; |
30262 | 30876 | ||
30263 | this.setState({ | 30877 | this.setState({ |
30264 | str: value && value.format(format) || '', | 30878 | str: value && value.format(format) || '', |
@@ -30270,16 +30884,16 @@ | |||
30270 | this.setState({ | 30884 | this.setState({ |
30271 | str: str | 30885 | str: str |
30272 | }); | 30886 | }); |
30273 | var _props2 = this.props; | 30887 | var _props2 = this.props, |
30274 | var format = _props2.format; | 30888 | format = _props2.format, |
30275 | var hourOptions = _props2.hourOptions; | 30889 | hourOptions = _props2.hourOptions, |
30276 | var minuteOptions = _props2.minuteOptions; | 30890 | minuteOptions = _props2.minuteOptions, |
30277 | var secondOptions = _props2.secondOptions; | 30891 | secondOptions = _props2.secondOptions, |
30278 | var disabledHours = _props2.disabledHours; | 30892 | disabledHours = _props2.disabledHours, |
30279 | var disabledMinutes = _props2.disabledMinutes; | 30893 | disabledMinutes = _props2.disabledMinutes, |
30280 | var disabledSeconds = _props2.disabledSeconds; | 30894 | disabledSeconds = _props2.disabledSeconds, |
30281 | var onChange = _props2.onChange; | 30895 | onChange = _props2.onChange, |
30282 | var allowEmpty = _props2.allowEmpty; | 30896 | allowEmpty = _props2.allowEmpty; |
30283 | 30897 | ||
30284 | 30898 | ||
30285 | if (str) { | 30899 | if (str) { |
@@ -30348,9 +30962,9 @@ | |||
30348 | this.props.onClear(); | 30962 | this.props.onClear(); |
30349 | }, | 30963 | }, |
30350 | getClearButton: function getClearButton() { | 30964 | getClearButton: function getClearButton() { |
30351 | var _props3 = this.props; | 30965 | var _props3 = this.props, |
30352 | var prefixCls = _props3.prefixCls; | 30966 | prefixCls = _props3.prefixCls, |
30353 | var allowEmpty = _props3.allowEmpty; | 30967 | allowEmpty = _props3.allowEmpty; |
30354 | 30968 | ||
30355 | if (!allowEmpty) { | 30969 | if (!allowEmpty) { |
30356 | return null; | 30970 | return null; |
@@ -30366,12 +30980,12 @@ | |||
30366 | return this.props.value || this.props.defaultOpenValue; | 30980 | return this.props.value || this.props.defaultOpenValue; |
30367 | }, | 30981 | }, |
30368 | getInput: function getInput() { | 30982 | getInput: function getInput() { |
30369 | var _props4 = this.props; | 30983 | var _props4 = this.props, |
30370 | var prefixCls = _props4.prefixCls; | 30984 | prefixCls = _props4.prefixCls, |
30371 | var placeholder = _props4.placeholder; | 30985 | placeholder = _props4.placeholder; |
30372 | var _state = this.state; | 30986 | var _state = this.state, |
30373 | var invalid = _state.invalid; | 30987 | invalid = _state.invalid, |
30374 | var str = _state.str; | 30988 | str = _state.str; |
30375 | 30989 | ||
30376 | var invalidClass = invalid ? prefixCls + '-input-invalid' : ''; | 30990 | var invalidClass = invalid ? prefixCls + '-input-invalid' : ''; |
30377 | return _react2.default.createElement('input', { | 30991 | return _react2.default.createElement('input', { |
@@ -30399,7 +31013,7 @@ | |||
30399 | module.exports = exports['default']; | 31013 | module.exports = exports['default']; |
30400 | 31014 | ||
30401 | /***/ }, | 31015 | /***/ }, |
30402 | /* 234 */ | 31016 | /* 256 */ |
30403 | /***/ function(module, exports, __webpack_require__) { | 31017 | /***/ function(module, exports, __webpack_require__) { |
30404 | 31018 | ||
30405 | 'use strict'; | 31019 | 'use strict'; |
@@ -30412,7 +31026,7 @@ | |||
30412 | 31026 | ||
30413 | var _react2 = _interopRequireDefault(_react); | 31027 | var _react2 = _interopRequireDefault(_react); |
30414 | 31028 | ||
30415 | var _Select = __webpack_require__(235); | 31029 | var _Select = __webpack_require__(257); |
30416 | 31030 | ||
30417 | var _Select2 = _interopRequireDefault(_Select); | 31031 | var _Select2 = _interopRequireDefault(_Select); |
30418 | 31032 | ||
@@ -30445,6 +31059,7 @@ | |||
30445 | value: _react.PropTypes.object, | 31059 | value: _react.PropTypes.object, |
30446 | onChange: _react.PropTypes.func, | 31060 | onChange: _react.PropTypes.func, |
30447 | showHour: _react.PropTypes.bool, | 31061 | showHour: _react.PropTypes.bool, |
31062 | showMinute: _react.PropTypes.bool, | ||
30448 | showSecond: _react.PropTypes.bool, | 31063 | showSecond: _react.PropTypes.bool, |
30449 | hourOptions: _react.PropTypes.array, | 31064 | hourOptions: _react.PropTypes.array, |
30450 | minuteOptions: _react.PropTypes.array, | 31065 | minuteOptions: _react.PropTypes.array, |
@@ -30456,9 +31071,9 @@ | |||
30456 | }, | 31071 | }, |
30457 | 31072 | ||
30458 | onItemChange: function onItemChange(type, itemValue) { | 31073 | onItemChange: function onItemChange(type, itemValue) { |
30459 | var _props = this.props; | 31074 | var _props = this.props, |
30460 | var onChange = _props.onChange; | 31075 | onChange = _props.onChange, |
30461 | var defaultOpenValue = _props.defaultOpenValue; | 31076 | defaultOpenValue = _props.defaultOpenValue; |
30462 | 31077 | ||
30463 | var value = (this.props.value || defaultOpenValue).clone(); | 31078 | var value = (this.props.value || defaultOpenValue).clone(); |
30464 | if (type === 'hour') { | 31079 | if (type === 'hour') { |
@@ -30474,11 +31089,11 @@ | |||
30474 | this.props.onCurrentSelectPanelChange(range); | 31089 | this.props.onCurrentSelectPanelChange(range); |
30475 | }, | 31090 | }, |
30476 | getHourSelect: function getHourSelect(hour) { | 31091 | getHourSelect: function getHourSelect(hour) { |
30477 | var _props2 = this.props; | 31092 | var _props2 = this.props, |
30478 | var prefixCls = _props2.prefixCls; | 31093 | prefixCls = _props2.prefixCls, |
30479 | var hourOptions = _props2.hourOptions; | 31094 | hourOptions = _props2.hourOptions, |
30480 | var disabledHours = _props2.disabledHours; | 31095 | disabledHours = _props2.disabledHours, |
30481 | var showHour = _props2.showHour; | 31096 | showHour = _props2.showHour; |
30482 | 31097 | ||
30483 | if (!showHour) { | 31098 | if (!showHour) { |
30484 | return null; | 31099 | return null; |
@@ -30497,12 +31112,16 @@ | |||
30497 | }); | 31112 | }); |
30498 | }, | 31113 | }, |
30499 | getMinuteSelect: function getMinuteSelect(minute) { | 31114 | getMinuteSelect: function getMinuteSelect(minute) { |
30500 | var _props3 = this.props; | 31115 | var _props3 = this.props, |
30501 | var prefixCls = _props3.prefixCls; | 31116 | prefixCls = _props3.prefixCls, |
30502 | var minuteOptions = _props3.minuteOptions; | 31117 | minuteOptions = _props3.minuteOptions, |
30503 | var disabledMinutes = _props3.disabledMinutes; | 31118 | disabledMinutes = _props3.disabledMinutes, |
30504 | var defaultOpenValue = _props3.defaultOpenValue; | 31119 | defaultOpenValue = _props3.defaultOpenValue, |
30505 | 31120 | showMinute = _props3.showMinute; | |
31121 | |||
31122 | if (!showMinute) { | ||
31123 | return null; | ||
31124 | } | ||
30506 | var value = this.props.value || defaultOpenValue; | 31125 | var value = this.props.value || defaultOpenValue; |
30507 | var disabledOptions = disabledMinutes(value.hour()); | 31126 | var disabledOptions = disabledMinutes(value.hour()); |
30508 | 31127 | ||
@@ -30518,12 +31137,12 @@ | |||
30518 | }); | 31137 | }); |
30519 | }, | 31138 | }, |
30520 | getSecondSelect: function getSecondSelect(second) { | 31139 | getSecondSelect: function getSecondSelect(second) { |
30521 | var _props4 = this.props; | 31140 | var _props4 = this.props, |
30522 | var prefixCls = _props4.prefixCls; | 31141 | prefixCls = _props4.prefixCls, |
30523 | var secondOptions = _props4.secondOptions; | 31142 | secondOptions = _props4.secondOptions, |
30524 | var disabledSeconds = _props4.disabledSeconds; | 31143 | disabledSeconds = _props4.disabledSeconds, |
30525 | var showSecond = _props4.showSecond; | 31144 | showSecond = _props4.showSecond, |
30526 | var defaultOpenValue = _props4.defaultOpenValue; | 31145 | defaultOpenValue = _props4.defaultOpenValue; |
30527 | 31146 | ||
30528 | if (!showSecond) { | 31147 | if (!showSecond) { |
30529 | return null; | 31148 | return null; |
@@ -30543,9 +31162,9 @@ | |||
30543 | }); | 31162 | }); |
30544 | }, | 31163 | }, |
30545 | render: function render() { | 31164 | render: function render() { |
30546 | var _props5 = this.props; | 31165 | var _props5 = this.props, |
30547 | var prefixCls = _props5.prefixCls; | 31166 | prefixCls = _props5.prefixCls, |
30548 | var defaultOpenValue = _props5.defaultOpenValue; | 31167 | defaultOpenValue = _props5.defaultOpenValue; |
30549 | 31168 | ||
30550 | var value = this.props.value || defaultOpenValue; | 31169 | var value = this.props.value || defaultOpenValue; |
30551 | return _react2.default.createElement( | 31170 | return _react2.default.createElement( |
@@ -30562,7 +31181,7 @@ | |||
30562 | module.exports = exports['default']; | 31181 | module.exports = exports['default']; |
30563 | 31182 | ||
30564 | /***/ }, | 31183 | /***/ }, |
30565 | /* 235 */ | 31184 | /* 257 */ |
30566 | /***/ function(module, exports, __webpack_require__) { | 31185 | /***/ function(module, exports, __webpack_require__) { |
30567 | 31186 | ||
30568 | 'use strict'; | 31187 | 'use strict'; |
@@ -30571,7 +31190,7 @@ | |||
30571 | value: true | 31190 | value: true |
30572 | }); | 31191 | }); |
30573 | 31192 | ||
30574 | var _defineProperty2 = __webpack_require__(214); | 31193 | var _defineProperty2 = __webpack_require__(251); |
30575 | 31194 | ||
30576 | var _defineProperty3 = _interopRequireDefault(_defineProperty2); | 31195 | var _defineProperty3 = _interopRequireDefault(_defineProperty2); |
30577 | 31196 | ||
@@ -30579,11 +31198,11 @@ | |||
30579 | 31198 | ||
30580 | var _react2 = _interopRequireDefault(_react); | 31199 | var _react2 = _interopRequireDefault(_react); |
30581 | 31200 | ||
30582 | var _reactDom = __webpack_require__(37); | 31201 | var _reactDom = __webpack_require__(36); |
30583 | 31202 | ||
30584 | var _reactDom2 = _interopRequireDefault(_reactDom); | 31203 | var _reactDom2 = _interopRequireDefault(_reactDom); |
30585 | 31204 | ||
30586 | var _classnames2 = __webpack_require__(236); | 31205 | var _classnames2 = __webpack_require__(258); |
30587 | 31206 | ||
30588 | var _classnames3 = _interopRequireDefault(_classnames2); | 31207 | var _classnames3 = _interopRequireDefault(_classnames2); |
30589 | 31208 | ||
@@ -30631,19 +31250,19 @@ | |||
30631 | } | 31250 | } |
30632 | }, | 31251 | }, |
30633 | onSelect: function onSelect(value) { | 31252 | onSelect: function onSelect(value) { |
30634 | var _props = this.props; | 31253 | var _props = this.props, |
30635 | var onSelect = _props.onSelect; | 31254 | onSelect = _props.onSelect, |
30636 | var type = _props.type; | 31255 | type = _props.type; |
30637 | 31256 | ||
30638 | onSelect(type, value); | 31257 | onSelect(type, value); |
30639 | }, | 31258 | }, |
30640 | getOptions: function getOptions() { | 31259 | getOptions: function getOptions() { |
30641 | var _this = this; | 31260 | var _this = this; |
30642 | 31261 | ||
30643 | var _props2 = this.props; | 31262 | var _props2 = this.props, |
30644 | var options = _props2.options; | 31263 | options = _props2.options, |
30645 | var selectedIndex = _props2.selectedIndex; | 31264 | selectedIndex = _props2.selectedIndex, |
30646 | var prefixCls = _props2.prefixCls; | 31265 | prefixCls = _props2.prefixCls; |
30647 | 31266 | ||
30648 | return options.map(function (item, index) { | 31267 | return options.map(function (item, index) { |
30649 | var _classnames; | 31268 | var _classnames; |
@@ -30669,6 +31288,9 @@ | |||
30669 | // move to selected item | 31288 | // move to selected item |
30670 | var select = _reactDom2.default.findDOMNode(this); | 31289 | var select = _reactDom2.default.findDOMNode(this); |
30671 | var list = _reactDom2.default.findDOMNode(this.refs.list); | 31290 | var list = _reactDom2.default.findDOMNode(this.refs.list); |
31291 | if (!list) { | ||
31292 | return; | ||
31293 | } | ||
30672 | var index = this.props.selectedIndex; | 31294 | var index = this.props.selectedIndex; |
30673 | if (index < 0) { | 31295 | if (index < 0) { |
30674 | index = 0; | 31296 | index = 0; |
@@ -30704,7 +31326,7 @@ | |||
30704 | module.exports = exports['default']; | 31326 | module.exports = exports['default']; |
30705 | 31327 | ||
30706 | /***/ }, | 31328 | /***/ }, |
30707 | /* 236 */ | 31329 | /* 258 */ |
30708 | /***/ function(module, exports, __webpack_require__) { | 31330 | /***/ function(module, exports, __webpack_require__) { |
30709 | 31331 | ||
30710 | var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! | 31332 | var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! |
@@ -30758,7 +31380,7 @@ | |||
30758 | 31380 | ||
30759 | 31381 | ||
30760 | /***/ }, | 31382 | /***/ }, |
30761 | /* 237 */ | 31383 | /* 259 */ |
30762 | /***/ function(module, exports) { | 31384 | /***/ function(module, exports) { |
30763 | 31385 | ||
30764 | 'use strict'; | 31386 | 'use strict'; |
diff --git a/examples/common.js.map b/examples/common.js.map index c600cd7..f0be384 100644 --- a/examples/common.js.map +++ b/examples/common.js.map | |||
@@ -1 +1 @@ | |||
{"version":3,"sources":["webpack:///webpack/bootstrap 84f8ccef8fb0f107790d","webpack:///./assets/index.less?da74","webpack:///./~/react/react.js","webpack:///./~/react/lib/React.js","webpack:///./~/process/browser.js","webpack:///./~/object-assign/index.js","webpack:///./~/react/lib/ReactChildren.js","webpack:///./~/react/lib/PooledClass.js","webpack:///./~/react/lib/reactProdInvariant.js","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/react/lib/canDefineProperty.js","webpack:///./~/react/lib/traverseAllChildren.js","webpack:///./~/react/lib/getIteratorFn.js","webpack:///./~/react/lib/KeyEscapeUtils.js","webpack:///./~/react/lib/ReactComponent.js","webpack:///./~/react/lib/ReactNoopUpdateQueue.js","webpack:///./~/fbjs/lib/emptyObject.js","webpack:///./~/react/lib/ReactPureComponent.js","webpack:///./~/react/lib/ReactClass.js","webpack:///./~/react/lib/ReactPropTypeLocations.js","webpack:///./~/fbjs/lib/keyMirror.js","webpack:///./~/react/lib/ReactPropTypeLocationNames.js","webpack:///./~/fbjs/lib/keyOf.js","webpack:///./~/react/lib/ReactDOMFactories.js","webpack:///./~/fbjs/lib/mapObject.js","webpack:///./~/react/lib/ReactElementValidator.js","webpack:///./~/react/lib/ReactComponentTreeDevtool.js","webpack:///./~/react/lib/checkReactTypeSpec.js","webpack:///./~/react/lib/ReactPropTypesSecret.js","webpack:///./~/react/lib/ReactPropTypes.js","webpack:///./~/react/lib/ReactVersion.js","webpack:///./~/react/lib/onlyChild.js","webpack:///./~/react-dom/index.js","webpack:///./~/react/lib/ReactDOM.js","webpack:///./~/react/lib/ReactDOMComponentTree.js","webpack:///./~/react/lib/DOMProperty.js","webpack:///./~/react/lib/ReactDOMComponentFlags.js","webpack:///./~/react/lib/ReactDefaultInjection.js","webpack:///./~/react/lib/BeforeInputEventPlugin.js","webpack:///./~/react/lib/EventConstants.js","webpack:///./~/react/lib/EventPropagators.js","webpack:///./~/react/lib/EventPluginHub.js","webpack:///./~/react/lib/EventPluginRegistry.js","webpack:///./~/react/lib/EventPluginUtils.js","webpack:///./~/react/lib/ReactErrorUtils.js","webpack:///./~/react/lib/accumulateInto.js","webpack:///./~/react/lib/forEachAccumulated.js","webpack:///./~/fbjs/lib/ExecutionEnvironment.js","webpack:///./~/react/lib/FallbackCompositionState.js","webpack:///./~/react/lib/getTextContentAccessor.js","webpack:///./~/react/lib/SyntheticCompositionEvent.js","webpack:///./~/react/lib/SyntheticEvent.js","webpack:///./~/react/lib/SyntheticInputEvent.js","webpack:///./~/react/lib/ChangeEventPlugin.js","webpack:///./~/react/lib/ReactUpdates.js","webpack:///./~/react/lib/CallbackQueue.js","webpack:///./~/react/lib/ReactFeatureFlags.js","webpack:///./~/react/lib/ReactReconciler.js","webpack:///./~/react/lib/ReactRef.js","webpack:///./~/react/lib/ReactOwner.js","webpack:///./~/react/lib/ReactInstrumentation.js","webpack:///./~/react/lib/ReactDebugTool.js","webpack:///./~/react/lib/ReactInvalidSetStateWarningDevTool.js","webpack:///./~/react/lib/ReactHostOperationHistoryDevtool.js","webpack:///./~/react/lib/ReactChildrenMutationWarningDevtool.js","webpack:///./~/fbjs/lib/performanceNow.js","webpack:///./~/fbjs/lib/performance.js","webpack:///./~/react/lib/Transaction.js","webpack:///./~/react/lib/getEventTarget.js","webpack:///./~/react/lib/isEventSupported.js","webpack:///./~/react/lib/isTextInputElement.js","webpack:///./~/react/lib/DefaultEventPluginOrder.js","webpack:///./~/react/lib/EnterLeaveEventPlugin.js","webpack:///./~/react/lib/SyntheticMouseEvent.js","webpack:///./~/react/lib/SyntheticUIEvent.js","webpack:///./~/react/lib/ViewportMetrics.js","webpack:///./~/react/lib/getEventModifierState.js","webpack:///./~/react/lib/HTMLDOMPropertyConfig.js","webpack:///./~/react/lib/ReactComponentBrowserEnvironment.js","webpack:///./~/react/lib/DOMChildrenOperations.js","webpack:///./~/react/lib/DOMLazyTree.js","webpack:///./~/react/lib/DOMNamespaces.js","webpack:///./~/react/lib/setInnerHTML.js","webpack:///./~/react/lib/createMicrosoftUnsafeLocalFunction.js","webpack:///./~/react/lib/setTextContent.js","webpack:///./~/react/lib/escapeTextContentForBrowser.js","webpack:///./~/react/lib/Danger.js","webpack:///./~/fbjs/lib/createNodesFromMarkup.js","webpack:///./~/fbjs/lib/createArrayFromMixed.js","webpack:///./~/fbjs/lib/getMarkupWrap.js","webpack:///./~/react/lib/ReactMultiChildUpdateTypes.js","webpack:///./~/react/lib/ReactDOMIDOperations.js","webpack:///./~/react/lib/ReactDOMComponent.js","webpack:///./~/react/lib/AutoFocusUtils.js","webpack:///./~/fbjs/lib/focusNode.js","webpack:///./~/react/lib/CSSPropertyOperations.js","webpack:///./~/react/lib/CSSProperty.js","webpack:///./~/fbjs/lib/camelizeStyleName.js","webpack:///./~/fbjs/lib/camelize.js","webpack:///./~/react/lib/dangerousStyleValue.js","webpack:///./~/fbjs/lib/hyphenateStyleName.js","webpack:///./~/fbjs/lib/hyphenate.js","webpack:///./~/fbjs/lib/memoizeStringOnly.js","webpack:///./~/react/lib/DOMPropertyOperations.js","webpack:///./~/react/lib/ReactDOMInstrumentation.js","webpack:///./~/react/lib/ReactDOMDebugTool.js","webpack:///./~/react/lib/ReactDOMNullInputValuePropDevtool.js","webpack:///./~/react/lib/ReactDOMUnknownPropertyDevtool.js","webpack:///./~/react/lib/quoteAttributeValueForBrowser.js","webpack:///./~/react/lib/ReactBrowserEventEmitter.js","webpack:///./~/react/lib/ReactEventEmitterMixin.js","webpack:///./~/react/lib/getVendorPrefixedEventName.js","webpack:///./~/react/lib/ReactDOMButton.js","webpack:///./~/react/lib/DisabledInputUtils.js","webpack:///./~/react/lib/ReactDOMInput.js","webpack:///./~/react/lib/LinkedValueUtils.js","webpack:///./~/react/lib/ReactDOMOption.js","webpack:///./~/react/lib/ReactDOMSelect.js","webpack:///./~/react/lib/ReactDOMTextarea.js","webpack:///./~/react/lib/ReactMultiChild.js","webpack:///./~/react/lib/ReactComponentEnvironment.js","webpack:///./~/react/lib/ReactInstanceMap.js","webpack:///./~/react/lib/ReactChildReconciler.js","webpack:///./~/react/lib/instantiateReactComponent.js","webpack:///./~/react/lib/ReactCompositeComponent.js","webpack:///./~/react/lib/ReactNodeTypes.js","webpack:///./~/fbjs/lib/shallowEqual.js","webpack:///./~/react/lib/shouldUpdateReactComponent.js","webpack:///./~/react/lib/ReactEmptyComponent.js","webpack:///./~/react/lib/ReactHostComponent.js","webpack:///./~/react/lib/flattenChildren.js","webpack:///./~/react/lib/ReactServerRenderingTransaction.js","webpack:///./~/react/lib/ReactServerUpdateQueue.js","webpack:///./~/react/lib/ReactUpdateQueue.js","webpack:///./~/react/lib/validateDOMNesting.js","webpack:///./~/react/lib/ReactDOMEmptyComponent.js","webpack:///./~/react/lib/ReactDOMTreeTraversal.js","webpack:///./~/react/lib/ReactDOMTextComponent.js","webpack:///./~/react/lib/ReactDefaultBatchingStrategy.js","webpack:///./~/react/lib/ReactEventListener.js","webpack:///./~/fbjs/lib/EventListener.js","webpack:///./~/fbjs/lib/getUnboundedScrollPosition.js","webpack:///./~/react/lib/ReactInjection.js","webpack:///./~/react/lib/ReactReconcileTransaction.js","webpack:///./~/react/lib/ReactInputSelection.js","webpack:///./~/react/lib/ReactDOMSelection.js","webpack:///./~/react/lib/getNodeForCharacterOffset.js","webpack:///./~/fbjs/lib/containsNode.js","webpack:///./~/fbjs/lib/isTextNode.js","webpack:///./~/fbjs/lib/isNode.js","webpack:///./~/fbjs/lib/getActiveElement.js","webpack:///./~/react/lib/SVGDOMPropertyConfig.js","webpack:///./~/react/lib/SelectEventPlugin.js","webpack:///./~/react/lib/SimpleEventPlugin.js","webpack:///./~/react/lib/SyntheticAnimationEvent.js","webpack:///./~/react/lib/SyntheticClipboardEvent.js","webpack:///./~/react/lib/SyntheticFocusEvent.js","webpack:///./~/react/lib/SyntheticKeyboardEvent.js","webpack:///./~/react/lib/getEventCharCode.js","webpack:///./~/react/lib/getEventKey.js","webpack:///./~/react/lib/SyntheticDragEvent.js","webpack:///./~/react/lib/SyntheticTouchEvent.js","webpack:///./~/react/lib/SyntheticTransitionEvent.js","webpack:///./~/react/lib/SyntheticWheelEvent.js","webpack:///./~/react/lib/ReactMount.js","webpack:///./~/react/lib/ReactDOMContainerInfo.js","webpack:///./~/react/lib/ReactDOMFeatureFlags.js","webpack:///./~/react/lib/ReactMarkupChecksum.js","webpack:///./~/react/lib/adler32.js","webpack:///./~/react/lib/findDOMNode.js","webpack:///./~/react/lib/getHostComponentFromComposite.js","webpack:///./~/react/lib/renderSubtreeIntoContainer.js","webpack:///./~/moment/moment.js","webpack:///./index.js","webpack:///./src/index.js","webpack:///./src/TimePicker.jsx","webpack:///./~/rc-trigger/lib/index.js","webpack:///./~/rc-trigger/lib/Trigger.js","webpack:///./~/rc-util/lib/Dom/contains.js","webpack:///./~/rc-util/lib/Dom/addEventListener.js","webpack:///./~/add-dom-event-listener/lib/index.js","webpack:///./~/add-dom-event-listener/lib/EventObject.js","webpack:///./~/add-dom-event-listener/lib/EventBaseObject.js","webpack:///./~/rc-trigger/lib/Popup.js","webpack:///./~/rc-align/lib/index.js","webpack:///./~/rc-align/lib/Align.js","webpack:///./~/dom-align/lib/index.js","webpack:///./~/dom-align/lib/utils.js","webpack:///./~/dom-align/lib/getOffsetParent.js","webpack:///./~/dom-align/lib/getVisibleRectForElement.js","webpack:///./~/dom-align/lib/adjustForViewport.js","webpack:///./~/dom-align/lib/getRegion.js","webpack:///./~/dom-align/lib/getElFuturePos.js","webpack:///./~/dom-align/lib/getAlignOffset.js","webpack:///./~/rc-align/lib/isWindow.js","webpack:///./~/rc-animate/lib/index.js","webpack:///./~/rc-animate/lib/Animate.js","webpack:///./~/rc-animate/lib/ChildrenUtils.js","webpack:///./~/rc-animate/lib/AnimateChild.js","webpack:///./~/css-animation/lib/index.js","webpack:///./~/css-animation/lib/Event.js","webpack:///./~/component-classes/index.js","webpack:///./~/component-indexof/index.js","webpack:///./~/rc-animate/lib/util.js","webpack:///./~/rc-trigger/lib/PopupInner.js","webpack:///./~/rc-trigger/lib/LazyRenderBox.js","webpack:///./~/rc-trigger/lib/utils.js","webpack:///./~/rc-util/lib/getContainerRenderMixin.js","webpack:///./src/Panel.jsx","webpack:///./~/babel-runtime/helpers/defineProperty.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/core-js/library/fn/object/define-property.js","webpack:///./~/core-js/library/modules/es6.object.define-property.js","webpack:///./~/core-js/library/modules/_export.js","webpack:///./~/core-js/library/modules/_global.js","webpack:///./~/core-js/library/modules/_core.js","webpack:///./~/core-js/library/modules/_ctx.js","webpack:///./~/core-js/library/modules/_a-function.js","webpack:///./~/core-js/library/modules/_hide.js","webpack:///./~/core-js/library/modules/_object-dp.js","webpack:///./~/core-js/library/modules/_an-object.js","webpack:///./~/core-js/library/modules/_is-object.js","webpack:///./~/core-js/library/modules/_ie8-dom-define.js","webpack:///./~/core-js/library/modules/_descriptors.js","webpack:///./~/core-js/library/modules/_fails.js","webpack:///./~/core-js/library/modules/_dom-create.js","webpack:///./~/core-js/library/modules/_to-primitive.js","webpack:///./~/core-js/library/modules/_property-desc.js","webpack:///./src/Header.jsx","webpack:///./src/Combobox.jsx","webpack:///./src/Select.jsx","webpack:///./~/classnames/index.js","webpack:///./src/placements.js"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wEAAgE,yEAAyE;AACzI;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACzFA,0C;;;;;;ACAA;;AAEA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wB;;;;;;;ACxFA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnItC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,UAAU;AACrB,YAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,iBAAiB;AAC5B,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,UAAU;AACrB,YAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,iBAAiB;AAC5B,YAAW,EAAE;AACb,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qDAAoD;;AAEpD,uBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA,qC;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA,4B;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,cAAc;AACzB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+B;;;;;;;ACvWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;;AAEA,oC;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA,0B;;;;;;;ACvDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6BAA4B,QAAQ,oBAAoB,EAAE;AAC1D;AACA,IAAG;AACH;AACA;AACA;;AAEA,oC;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,GAAG;AACd,YAAW,QAAQ;AACnB,YAAW,UAAU;AACrB,YAAW,GAAG;AACd;AACA,aAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB;AACvB;;AAEA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2LAA2L,yCAAyC,+GAA+G,yCAAyC;AAC5X;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,UAAU;AACrB,YAAW,GAAG;AACd,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sC;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,yCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA,iC;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB;AACA;AACA,0DAAyD;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,8B;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAwB,eAAe;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,KAAK;AAClC;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,0BAA0B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,WAAW;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,sBAAqB,mBAAmB;AACxC;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,+CAA8C;AAC9C,IAAG;AACH;AACA;AACA;AACA;AACA,0CAAyC;AACzC,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,uCAAsC;AACtC,IAAG;AACH;AACA;AACA,IAAG;AACH,2BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,6HAA4H;AAC5H;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qOAAoO;;AAEpO;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA,qNAAoN;AACpN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA,uDAAsD;AACtD;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6B;;;;;;;AC3tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED,yC;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4B;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6C;;;;;;;ACvBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wB;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED,oC;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4B;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA,0FAAyF;;AAEzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,UAAU;AACrB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,4C;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kJAAiJ;AACjJ;AACA,QAAO;AACP;AACA;AACA,uIAAsI;AACtI;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uC;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR,4BAA2B;AAC3B,OAAM;AACN;AACA;AACA;AACA;AACA,8BAA6B,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,2BAA0B;AAC1B,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2B;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,4B;;;;;;;ACrCA;;AAEA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,+HAA8H;;AAE9H;AACA;AACA;;AAEA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAkE;AAClE;AACA;AACA;AACA,WAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAQ,gBAAgB;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wC;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C;AAC5C,+BAA8B;AAC9B;AACA,iBAAgB;;AAEhB;AACA;AACA;AACA,aAAY;AACZ;AACA,sEAAqE;;AAErE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAmB,oDAAoD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA,8B;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,yC;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,G;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oCAAmC;AACnC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,uBAAsB,2BAA2B;AACjD,wBAAuB,kCAAkC;AACzD,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,uBAAsB,4BAA4B;AAClD,wBAAuB,mCAAmC;AAC1D,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,yC;;;;;;ACnYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,oCAAmC,gCAAgC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA,iC;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mC;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA,gBAAe,OAAO;AACtB;AACA;;AAEA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA,yGAAwG;AACxG;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA,iC;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA8B;;AAE9B;AACA;AACA;AACA,8BAA6B;;AAE7B;AACA;AACA;AACA,mCAAkC;;AAElC;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,wEAAuE;;AAEvE;AACA;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,eAAe;AAC1B,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;;AAEH;AACA;;AAEA,mC;;;;;;;ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kC;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA,aAAY,WAAW;AACvB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,qC;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uC;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,eAAe;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,2C;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yC;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,4C;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,oBAAmB,uCAAuC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA8B;AAC9B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB,aAAY,OAAO;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;ACnQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oC;;;;;;ACpUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,eAAe;AAC1B,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAgD;AAChD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa,SAAS;AACtB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;;AAEA,gC;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,0DAA0D;AACvE,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,aAAa;AAC1B,cAAa,0BAA0B;AACvC,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kC;;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6B;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAkB,wB;;;;;;;ACpBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,oBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;AChUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,qD;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,mD;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iD;;;;;;;AC7DA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA,iC;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,oC;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,4BAA4B;AACvC;AACA,aAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA,eAAc,0BAA0B;AACxC;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB;AACA,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,6BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,2DAA0D;AAC1D;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,sDAAqD;AACrD;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,8B;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,eAAe;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iC;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mC;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qC;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC,6BAA6B,UAAU,0BAA0B,UAAU,uBAAuB,UAAU,8BAA8B,UAAU,0BAA0B,UAAU,0BAA0B,UAAU,+BAA+B;;AAEjS,0C;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,8BAA6B,qBAAqB;AAClD;AACA,IAAG;AACH;AACA,8BAA6B,qBAAqB;AAClD;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,wC;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,mC;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kC;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wC;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA,wC;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mD;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,WAAW;AACtB,YAAW,WAAW;AACtB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,gGAA+F,8DAA8D;AAC7J;AACA;AACA;AACA;AACA;AACA,8FAA6F,uDAAuD;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAA+F,8BAA8B;AAC7H;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;AACH;AACA;AACA;;AAEA,qD;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,yBAAwB,EAAE,8BAA8B;AACxD;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8C;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA,yB;;;;;;;AC/CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,aAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wC;;;;;;;AClFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,yBAAyB;AACpC,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,oLAAmL;;AAEnL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAkB,aAAa;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY;AACZ;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA,uC;;;;;;;AC7HA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,6C;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;;AAErB,oBAAmB,cAAc;AACjC,mBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,yBAAyB;AACxC;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qNAAoN,YAAY;AAChO;AACA;AACA;AACA;AACA;AACA;AACA,gOAA+N,+BAA+B;AAC9P;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,qDAAoD;AACpD;AACA,wBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,mBAAmB;AAChC,cAAa,QAAQ;AACrB,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,wBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,0DAA0D;AACvE,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC,cAAa,aAAa;AAC1B,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,uCAAsC,KAAK;AAC3C;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,0BAA0B;AACvC,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;;AAEA,oC;;;;;;;AChgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,WAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA,4B;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA4C;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa,OAAO;AACpB,cAAa,EAAE;AACf,cAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAgC,0BAA0B;AAC1D,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,kBAAkB;AAC/B,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAgF;AAChF;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB,cAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8B;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA,oC;;;;;;ACtCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA,2B;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,YAAW,kBAAkB;AAC7B,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sC;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA,qC;;;;;;ACrCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA,4B;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,EAAE;AACf,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,EAAE;AACf,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAkB,wB;;;;;;;ACpBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,oBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oC;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,iD;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA6C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,iD;;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA,gD;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED,2C;;;;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yC;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6C;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qC;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA,2GAA0G;AAC1G;AACA;AACA;AACA,6GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gC;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,cAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,mC;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA,2BAA0B;AAC1B,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,8BAA6B,2CAA2C;;AAExE;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iC;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAuG;AACvG;AACA;;AAEA,kBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,YAAW,kBAAkB;AAC7B,YAAW,QAAQ;AACnB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,sBAAsB;AACrC;AACA;AACA,gBAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,gBAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,8GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,mCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mC;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,iBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,gBAAe,QAAQ;AACvB,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,eAAe;AAC9B,gBAAe,OAAO;AACtB,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,eAAe;AAC9B,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAe,eAAe;AAC9B,gBAAe,OAAO;AACtB,gBAAe,OAAO;AACtB,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,kC;;;;;;;ACpcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,4C;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA,mC;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wKAAuK;AACvK;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,0BAA0B;AACvC,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,uC;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,UAAU;AACrB,YAAW,QAAQ;AACnB,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4C;;;;;;;ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC,cAAa,aAAa;AAC1B,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA8B;AAC9B,kCAAiC,kBAAkB;AACnD;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,0BAA0B;AACvC,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,eAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,0C;;;;;;;AC/6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+B;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,aAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,6C;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,aAAa;AACxB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,UAAU;AACrB,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,YAAW,eAAe;AAC1B,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,SAAS;AACpB,YAAW,gBAAgB;AAC3B,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0KAAyK;AACzK;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;;AAEA,kC;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAc,MAAM;AACpB;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,6BAA4B;;AAE5B,6BAA4B;;AAE5B;AACA;;AAEA;;AAEA;;AAEA,kD;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB;;AAEA;AACA,kCAAiC;;AAEjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;;;AAGA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,gBAAgB;AAC7B;AACA;;;AAGA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,gBAAgB;AAC7B;AACA;;;AAGA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED,yC;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yRAAwR;AACxR;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,0IAAyI;AACzI;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA,mC;;;;;;;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD;AACA;AACA,wCAAuC;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAiC;AACjC,iBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;AChXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED,yC;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAyB,OAAO;AAChC;AACA;AACA;AACA,0BAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS;AAChC;AACA;AACA,cAAa,iBAAiB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,qBAAqB;AAClC;AACA;AACA,0BAAyB,SAAS;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,UAAU;AACvB,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED,wC;;;;;;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,+C;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,kBAAiB,kCAAkC;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,qC;;;;;;AC5JA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA,gC;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,qBAAqB;AAChC,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6C;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,UAAU;AACxB;AACA;AACA;AACA,cAAa,UAAU;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,4C;;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,0BAAyB;AACzB,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,sC;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,aAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,WAAW;AACtB,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,uBAAuB;AAClC,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB;AACA;;AAEA;AACA,cAAa,uBAAuB;AACpC,cAAa,OAAO;AACpB;AACA;AACA;;AAEA,oC;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,aAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4C;;;;;;ACzEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA,+B;;;;;;ACtCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,EAAE;AACb,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA,6B;;;;;;ACvBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,EAAE;AACb,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA,yB;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,mC;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,uC;;;;;;AC7SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA2B,iBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,uBAAuB;AAC7C,wBAAuB,8BAA8B;AACrD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,6BAA6B;AACnD,wBAAuB,oCAAoC;AAC3D;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,cAAc;AACpC,wBAAuB,qBAAqB;AAC5C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,wBAAwB;AAC9C,wBAAuB,+BAA+B;AACtD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,uBAAuB;AAC7C,wBAAuB,8BAA8B;AACrD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA0B,gBAAgB;AAC1C;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oC;;;;;;;ACxnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,0C;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,0C;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,yC;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mC;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,qC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,2C;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA,kBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,uBAAuB;AAClC;AACA,aAAY,GAAG;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,WAAW;AACtB,YAAW,0BAA0B;AACrC,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,WAAW;AACtB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,WAAW;AACtB;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,QAAQ;AACrB,eAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA,qLAAoL;;AAEpL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB,eAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB,eAAc,eAAe;AAC7B;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oLAAmL;;AAEnL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6B;;;;;;;AClfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wC;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,uC;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,cAAa,WAAW;AACxB,gBAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sC;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA,SAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,0B;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,0BAA0B;AACrC,aAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,8B;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,gD;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,wD;;;;;;ACfA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA;AACA,EAAC,oBAAoB;;AAErB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,4BAA2B,SAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uFAAsF,IAAI;AAC1F;;AAEA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC,IAAI;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,4BAA2B,wBAAwB;AACnD;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6LAA4L,IAAI;;AAEhM,sEAAqE,IAAI;;AAEzE;;AAEA;;AAEA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA0C,YAAY;AACtD;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA8B;AAC9B,iCAAgC;AAChC,8BAA6B,EAAE,EAAE;AACjC,8BAA6B,EAAE,EAAE;AACjC,mCAAkC,EAAE,EAAE;AACtC,kCAAiC;AACjC,sCAAqC;AACrC,0CAAyC;AACzC,8BAA6B,IAAI,EAAE;AACnC,8BAA6B,IAAI,EAAE;AACnC,mCAAkC,IAAI,EAAE;;AAExC,gCAA+B;AAC/B,qCAAoC;;AAEpC,+CAA8C;AAC9C,sDAAqD;;AAErD,yCAAwC,IAAI,IAAI;;AAEhD;AACA;AACA,iIAAgI,IAAI;;;AAGpI;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA,+CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,wBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,oBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,YAAY;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA2C,EAAE,IAAI,EAAE;AACnD,yCAAwC,EAAE,IAAI,EAAE;;AAEhD;;AAEA;AACA,kCAAiC,EAAE;AACnC,4BAA2B,EAAE;AAC7B,8BAA6B,EAAE;AAC/B,4BAA2B,EAAE;AAC7B,0BAAyB,EAAE,IAAI,EAAE;AACjC,yBAAwB,EAAE;AAC1B,gCAA+B,GAAG;AAClC,0BAAyB,EAAE;AAC3B;AACA,4BAA2B,EAAE,IAAI,EAAE;AACnC,2BAA0B,EAAE,IAAI,EAAE;AAClC,yBAAwB,EAAE;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,eAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,sBAAsB;AACzC;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0CAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yEAAwE,EAAE;;AAE1E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,6BAA6B;AACtC;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB;;AAEnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,cAAc;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA2C,qBAAqB;AAChE,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA2C,qBAAqB;AAChE,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;;AAGL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,EAAC,G;;;;;;;;;;;;AClmID;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,UAAS,IAAT,GAAgB,CACf;;AAED,UAAS,KAAT,CAAe,KAAf,EAAsB,SAAtB,EAAiC;AAC/B,QAAK,KAAL,IAAc,SAAd;AACD;;AAED,KAAM,SAAS,gBAAM,WAAN,CAAkB;AAAA;;AAC/B,cAAW;AACT,gBAAW,iBAAU,MADZ;AAET,gBAAW,iBAAU,MAFZ;AAGT,YAAO,iBAAU,MAHR;AAIT,uBAAkB,iBAAU,MAJnB;AAKT,eAAU,iBAAU,IALX;AAMT,iBAAY,iBAAU,IANb;AAOT,mBAAc,iBAAU,MAPf;AAQT,WAAM,iBAAU,IARP;AAST,kBAAa,iBAAU,IATd;AAUT,YAAO,iBAAU,MAVR;AAWT,gBAAW,iBAAU,GAXZ;AAYT,qBAAgB,iBAAU,MAZjB;AAaT,wBAAmB,iBAAU,IAbpB;AAcT,kBAAa,iBAAU,MAdd;AAeT,aAAQ,iBAAU,MAfT;AAgBT,eAAU,iBAAU,IAhBX;AAiBT,YAAO,iBAAU,MAjBR;AAkBT,gBAAW,iBAAU,MAlBZ;AAmBT,iBAAY,iBAAU,IAnBb;AAoBT,oBAAe,iBAAU,IApBhB;AAqBT,sBAAiB,iBAAU,IArBlB;AAsBT,sBAAiB,iBAAU,IAtBlB;AAuBT,0BAAqB,iBAAU,IAvBtB;AAwBT,eAAU,iBAAU,IAxBX;AAyBT,aAAQ,iBAAU,IAzBT;AA0BT,cAAS,iBAAU,IA1BV;AA2BT,YAAO,iBAAU;AA3BR,IADoB;;AA+B/B,kBA/B+B,6BA+Bb;AAChB,YAAO;AACL,kBAAW,OADN;AAEL,kBAAW,gBAFN;AAGL,oBAAa,KAHR;AAIL,cAAO,EAJF;AAKL,kBAAW,EALN;AAML,cAAO,EANF;AAOL,yBAAkB,uBAPb;AAQL,mBAAY,IARP;AASL,iBAAU,IATL;AAUL,mBAAY,IAVP;AAWL,sBAAe,IAXV;AAYL,wBAAiB,IAZZ;AAaL,wBAAiB,IAbZ;AAcL,4BAAqB,KAdhB;AAeL,kBAAW,YAfN;AAgBL,iBAAU,IAhBL;AAiBL,eAAQ,IAjBH;AAkBL,gBAAS,IAlBJ;AAmBL,cAAO;AAnBF,MAAP;AAqBD,IArD8B;AAuD/B,kBAvD+B,6BAuDb;AAChB,UAAK,YAAL,GAAoB,MAAM,IAAN,CAAW,IAAX,EAAiB,eAAjB,CAApB;AADgB,kBAEgE,KAAK,KAFrE;AAAA,SAER,WAFQ,UAER,WAFQ;AAAA,SAEK,YAFL,UAEK,YAFL;AAAA,8BAEmB,IAFnB;AAAA,SAEmB,IAFnB,+BAE0B,WAF1B;AAAA,+BAEuC,KAFvC;AAAA,SAEuC,KAFvC,gCAE+C,YAF/C;;AAGhB,YAAO;AACL,iBADK;AAEL;AAFK,MAAP;AAID,IA9D8B;AAgE/B,4BAhE+B,qCAgEL,SAhEK,EAgEM;AAAA,SAC3B,KAD2B,GACX,SADW,CAC3B,KAD2B;AAAA,SACpB,IADoB,GACX,SADW,CACpB,IADoB;;AAEnC,SAAI,WAAW,SAAf,EAA0B;AACxB,YAAK,QAAL,CAAc;AACZ;AADY,QAAd;AAGD;AACD,SAAI,SAAS,SAAb,EAAwB;AACtB,YAAK,QAAL,CAAc,EAAE,UAAF,EAAd;AACD;AACF,IA1E8B;AA4E/B,gBA5E+B,yBA4EjB,KA5EiB,EA4EV;AACnB,UAAK,QAAL,CAAc,KAAd;AACD,IA9E8B;AAgF/B,eAhF+B,0BAgFhB;AACb,UAAK,QAAL,CAAc,IAAd;AACA,UAAK,OAAL,CAAa,KAAb;AACD,IAnF8B;AAqF/B,kBArF+B,2BAqFf,IArFe,EAqFT;AACpB,UAAK,OAAL,CAAa,IAAb;AACD,IAvF8B;AAyF/B,QAzF+B,mBAyFvB;AACN,UAAK,OAAL,CAAa,KAAb;AACA,UAAK,IAAL,CAAU,MAAV,CAAiB,KAAjB;AACD,IA5F8B;AA8F/B,YA9F+B,qBA8FrB,CA9FqB,EA8FlB;AACX,SAAI,EAAE,OAAF,KAAc,EAAlB,EAAsB;AACpB,YAAK,OAAL,CAAa,IAAb;AACD;AACF,IAlG8B;AAoG/B,WApG+B,oBAoGtB,KApGsB,EAoGf;AACd,SAAI,EAAE,WAAW,KAAK,KAAlB,CAAJ,EAA8B;AAC5B,YAAK,QAAL,CAAc;AACZ;AADY,QAAd;AAGD;AACD,UAAK,KAAL,CAAW,QAAX,CAAoB,KAApB;AACD,IA3G8B;AA6G/B,YA7G+B,uBA6GnB;AACV,SAAM,SAAS,KAAK,KAAL,CAAW,MAA1B;AACA,SAAI,MAAJ,EAAY;AACV,cAAO,MAAP;AACD;AACD,SAAI,CAAC,KAAK,KAAL,CAAW,UAAhB,EAA4B;AAC1B,cAAO,OAAP;AACD;AACD,SAAI,CAAC,KAAK,KAAL,CAAW,QAAhB,EAA0B;AACxB,cAAO,OAAP;AACD;AACD,YAAO,UAAP;AACD,IAzH8B;AA2H/B,kBA3H+B,6BA2Hb;AAAA,mBAMZ,KAAK,KANO;AAAA,SAEd,SAFc,WAEd,SAFc;AAAA,SAEH,WAFG,WAEH,WAFG;AAAA,SAEU,aAFV,WAEU,aAFV;AAAA,SAGd,eAHc,WAGd,eAHc;AAAA,SAGG,eAHH,WAGG,eAHH;AAAA,SAGoB,mBAHpB,WAGoB,mBAHpB;AAAA,SAId,UAJc,WAId,UAJc;AAAA,SAIF,QAJE,WAIF,QAJE;AAAA,SAIQ,UAJR,WAIQ,UAJR;AAAA,SAIoB,gBAJpB,WAIoB,gBAJpB;AAAA,SAIsC,SAJtC,WAIsC,SAJtC;AAAA,SAKd,KALc,WAKd,KALc;;AAOhB,YACE;AACE,kBAAW,SADb;AAEE,kBAAc,SAAd,WAFF;AAGE,YAAK,KAAK,YAHZ;AAIE,cAAO,KAAK,KAAL,CAAW,KAJpB;AAKE,iBAAU,KAAK,aALjB;AAME,gBAAS,KAAK,YANhB;AAOE,yBAAkB,gBAPpB;AAQE,iBAAU,QARZ;AASE,cAAO,KAAK,KATd;AAUE,mBAAY,UAVd;AAWE,mBAAY,UAXd;AAYE,eAAQ,KAAK,SAAL,EAZV;AAaE,oBAAa,WAbf;AAcE,sBAAe,aAdjB;AAeE,wBAAiB,eAfnB;AAgBE,wBAAiB,eAhBnB;AAiBE,4BAAqB,mBAjBvB;AAkBE,cAAO;AAlBT,OADF;AAsBD,IAxJ8B;AA0J/B,UA1J+B,mBA0JvB,IA1JuB,EA0JjB,QA1JiB,EA0JP;AAAA,mBACM,KAAK,KADX;AAAA,SACd,MADc,WACd,MADc;AAAA,SACN,OADM,WACN,OADM;;AAEtB,SAAI,KAAK,KAAL,CAAW,IAAX,KAAoB,IAAxB,EAA8B;AAC5B,YAAK,QAAL,CAAc;AACZ;AADY,QAAd,EAEG,QAFH;AAGA,WAAM,QAAQ;AACZ;AADY,QAAd;AAGA,WAAI,IAAJ,EAAU;AACR,gBAAO,KAAP;AACD,QAFD,MAEO;AACL,iBAAQ,KAAR;AACD;AACF;AACF,IAzK8B;AA2K/B,SA3K+B,oBA2KtB;AAAA,mBAKH,KAAK,KALF;AAAA,SAEL,SAFK,WAEL,SAFK;AAAA,SAEM,WAFN,WAEM,WAFN;AAAA,SAEmB,SAFnB,WAEmB,SAFnB;AAAA,SAE8B,KAF9B,WAE8B,KAF9B;AAAA,SAGL,QAHK,WAGL,QAHK;AAAA,SAGK,cAHL,WAGK,cAHL;AAAA,SAGqB,KAHrB,WAGqB,KAHrB;AAAA,SAG4B,SAH5B,WAG4B,SAH5B;AAAA,SAGuC,QAHvC,WAGuC,QAHvC;AAAA,SAIL,UAJK,WAIL,UAJK;AAAA,SAIO,iBAJP,WAIO,iBAJP;AAAA,kBAMiB,KAAK,KANtB;AAAA,SAMC,IAND,UAMC,IAND;AAAA,SAMO,KANP,UAMO,KANP;;AAOP,SAAI,uBAAJ;AACA,SAAI,CAAC,QAAD,IAAa,CAAC,UAAlB,EAA8B;AAC5B,wBAAoB,SAApB;AACD;AACD,YACE;AAAA;AAAA;AACE,oBAAc,SAAd,WADF;AAEE,yBAAgB,cAFlB;AAGE,gBAAO,KAAK,eAAL,EAHT;AAIE,qBAAY,KAJd;AAKE,gDALF;AAME,yBAAgB,SANlB;AAOE,iBAAQ,WAAW,EAAX,GAAgB,CAAC,OAAD,CAP1B;AAQE,iCARF;AASE,4BAAmB,iBATrB;AAUE,8BAAqB,cAVvB;AAWE,uBAAc,IAXhB;AAYE,+BAAsB,KAAK;AAZ7B;AAcE;AAAA;AAAA,WAAM,WAAc,SAAd,SAA2B,SAAjC,EAA8C,OAAO,KAArD;AACE;AACE,sBAAc,SAAd,WADF;AAEE,gBAAI,QAFN,EAEe,MAAK,MAFpB,EAE2B,aAAa,WAFxC;AAGE,yBAHF;AAIE,sBAAW,KAAK,SAJlB;AAKE,qBAAU,QALZ,EAKsB,OAAO,SAAS,MAAM,MAAN,CAAa,KAAK,SAAL,EAAb,CAAT,IAA2C;AALxE,WADF;AAQE,iDAAM,WAAc,SAAd,UAAN;AARF;AAdF,MADF;AA2BD;AAjN8B,EAAlB,CAAf;;mBAoNe,M;;;;;;;ACjOf;;AAEA,2C;;;;;;ACFA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA,+BAA8B;AAC9B;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;AC/cA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;ACZA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,qC;;;;;;ACxBA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;ACpCA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAqD;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACrRA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;AC9DA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,sBAAsB;AAChD;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;AC/NA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,yCAAwC;;AAExC,qC;;;;;;ACdA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,QAAO;AACP,qCAAoC;;AAEpC;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACzJA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qC;;;;;;ACzNA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,WAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,kBAAkB;AAC/B;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,UAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAe;;AAEf;AACA;AACA,kEAAiE,aAAa;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,wCAAuC;AACvC,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA,uEAAsE,eAAe;AACrF;AACA;;AAEA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,qC;;;;;;AC5eA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA2B,cAAc;AACzC,4BAA2B,cAAc,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACpDA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;AC3EA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qC;;;;;;ACtDA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACnCA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACnCA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACvCA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,qC;;;;;;ACXA;;AAEA;AACA,2C;;;;;;ACHA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,4CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAkG;AAClG,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACtUA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA,E;;;;;;ACpHA;;AAEA;AACA;AACA,EAAC;;AAED,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACzGA;;AAEA;AACA;AACA,EAAC;;AAED,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA,qC;;;;;;AC7LA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,qC;;;;;;ACvFA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,cAAc;AACzB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9LA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,G;;;;;;ACNA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,qC;;;;;;AC1BA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS,kEAAkE;AAC3E;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACnDA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,+CAA8C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,oBAAoB,EAAE,eAAe;;AAE1N;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;AC7CA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC7BA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,qC;;;;;;;;;;;;;;;;AC7FA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,UAAS,IAAT,GAAgB,CACf;;AAED,UAAS,eAAT,CAAyB,MAAzB,EAAiC,eAAjC,EAAkD,mBAAlD,EAAuE;AACrE,OAAM,MAAM,EAAZ;AACA,QAAK,IAAI,QAAQ,CAAjB,EAAoB,QAAQ,MAA5B,EAAoC,OAApC,EAA6C;AAC3C,SAAI,CAAC,eAAD,IAAoB,gBAAgB,OAAhB,CAAwB,KAAxB,IAAiC,CAArD,IAA0D,CAAC,mBAA/D,EAAoF;AAClF,WAAI,IAAJ,CAAS,KAAT;AACD;AACF;AACD,UAAO,GAAP;AACD;;AAED,KAAM,QAAQ,gBAAM,WAAN,CAAkB;AAAA;;AAC9B,cAAW;AACT,gBAAW,iBAAU,MADZ;AAET,gBAAW,iBAAU,MAFZ;AAGT,gBAAW,iBAAU,MAHZ;AAIT,uBAAkB,iBAAU,MAJnB;AAKT,YAAO,iBAAU,MALR;AAMT,kBAAa,iBAAU,MANd;AAOT,aAAQ,iBAAU,MAPT;AAQT,oBAAe,iBAAU,IARhB;AAST,sBAAiB,iBAAU,IATlB;AAUT,sBAAiB,iBAAU,IAVlB;AAWT,0BAAqB,iBAAU,IAXtB;AAYT,eAAU,iBAAU,IAZX;AAaT,YAAO,iBAAU,IAbR;AAcT,iBAAY,iBAAU,IAdb;AAeT,eAAU,iBAAU,IAfX;AAgBT,iBAAY,iBAAU,IAhBb;AAiBT,cAAS,iBAAU,IAjBV;AAkBT,YAAO,iBAAU;AAlBR,IADmB;;AAsB9B,kBAtB8B,6BAsBZ;AAChB,YAAO;AACL,kBAAW,sBADN;AAEL,iBAAU,IAFL;AAGL,gBAAS,IAHJ;AAIL,sBAAe,IAJV;AAKL,wBAAiB,IALZ;AAML,wBAAiB,IANZ;AAOL,yBAAkB,uBAPb;AAQL,cAAO;AARF,MAAP;AAUD,IAjC6B;AAmC9B,kBAnC8B,6BAmCZ;AAChB,YAAO;AACL,cAAO,KAAK,KAAL,CAAW,KADb;AAEL,uBAAgB;AAFX,MAAP;AAID,IAxC6B;AA0C9B,4BA1C8B,qCA0CJ,SA1CI,EA0CO;AACnC,SAAM,QAAQ,UAAU,KAAxB;AACA,SAAI,KAAJ,EAAW;AACT,YAAK,QAAL,CAAc;AACZ;AADY,QAAd;AAGD;AACF,IAjD6B;AAmD9B,WAnD8B,oBAmDrB,QAnDqB,EAmDX;AACjB,UAAK,QAAL,CAAc,EAAE,OAAO,QAAT,EAAd;AACA,UAAK,KAAL,CAAW,QAAX,CAAoB,QAApB;AACD,IAtD6B;AAwD9B,UAxD8B,qBAwDpB;AACR,UAAK,KAAL,CAAW,OAAX;AACD,IA1D6B;AA4D9B,6BA5D8B,sCA4DH,kBA5DG,EA4DiB;AAC7C,UAAK,QAAL,CAAc,EAAE,sCAAF,EAAd;AACD,IA9D6B;AAgE9B,QAhE8B,mBAgEtB;AACN,UAAK,KAAL,CAAW,KAAX;AACD,IAlE6B;AAoE9B,SApE8B,oBAoErB;AAAA;;AAAA,kBAKH,KAAK,KALF;AAAA,SAEL,SAFK,UAEL,SAFK;AAAA,SAEM,SAFN,UAEM,SAFN;AAAA,SAEiB,WAFjB,UAEiB,WAFjB;AAAA,SAE8B,aAF9B,UAE8B,aAF9B;AAAA,SAE6C,eAF7C,UAE6C,eAF7C;AAAA,SAGL,eAHK,UAGL,eAHK;AAAA,SAGY,mBAHZ,UAGY,mBAHZ;AAAA,SAGiC,UAHjC,UAGiC,UAHjC;AAAA,SAG6C,QAH7C,UAG6C,QAH7C;AAAA,SAGuD,UAHvD,UAGuD,UAHvD;AAAA,SAIL,MAJK,UAIL,MAJK;AAAA,SAIG,gBAJH,UAIG,gBAJH;AAAA,SAIqB,SAJrB,UAIqB,SAJrB;AAAA,SAIgC,KAJhC,UAIgC,KAJhC;AAAA,SAIuC,KAJvC,UAIuC,KAJvC;AAAA,kBAQH,KAAK,KARF;AAAA,SAOL,KAPK,UAOL,KAPK;AAAA,SAOE,kBAPF,UAOE,kBAPF;;AASP,SAAM,sBAAsB,eAA5B;AACA,SAAM,wBAAwB,gBAAgB,QAAQ,MAAM,IAAN,EAAR,GAAuB,IAAvC,CAA9B;AACA,SAAM,wBAAwB,gBAAgB,QAAQ,MAAM,IAAN,EAAR,GAAuB,IAAvC,EAC5B,QAAQ,MAAM,MAAN,EAAR,GAAyB,IADG,CAA9B;AAEA,SAAM,cAAc,gBAAgB,EAAhB,EAAoB,mBAApB,EAAyC,mBAAzC,CAApB;AACA,SAAM,gBAAgB,gBAAgB,EAAhB,EAAoB,qBAApB,EAA2C,mBAA3C,CAAtB;AACA,SAAM,gBAAgB,gBAAgB,EAAhB,EAAoB,qBAApB,EAA2C,mBAA3C,CAAtB;;AAEA,YACE;AAAA;AAAA,SAAK,WAAW,wFAAiB,SAAjB,aAAqC,IAArC,8CAA4C,SAA5C,EAAwD,CAAC,CAAC,SAA1D,gBAAhB;AACE;AACE,oBAAW,SADb;AAEE,oBAAW,SAFb;AAGE,2BAAkB,gBAHpB;AAIE,gBAAO,KAJT;AAKE,6BAAoB,kBALtB;AAME,gBAAO,KANT;AAOE,iBAAQ,MAPV;AAQE,sBAAa,WARf;AASE,sBAAa,WATf;AAUE,wBAAe,aAVjB;AAWE,wBAAe,aAXjB;AAYE,wBAAe,aAZjB;AAaE,0BAAiB,eAbnB;AAcE,0BAAiB,eAdnB;AAeE,mBAAU,KAAK,QAfjB;AAgBE,kBAAS,KAAK,OAhBhB;AAiBE,qBAAY;AAjBd,SADF;AAoBE;AACE,oBAAW,SADb;AAEE,gBAAO,KAFT;AAGE,2BAAkB,gBAHpB;AAIE,iBAAQ,MAJV;AAKE,mBAAU,KAAK,QALjB;AAME,mBAAU,QANZ;AAOE,qBAAY,UAPd;AAQE,sBAAa,WARf;AASE,wBAAe,aATjB;AAUE,wBAAe,aAVjB;AAWE,wBAAe,aAXjB;AAYE,0BAAiB,eAZnB;AAaE,0BAAiB,eAbnB;AAcE,qCAA4B,KAAK;AAdnC,SApBF;AAoCG,aAAM,IAAN;AApCH,MADF;AAwCD;AA7H6B,EAAlB,CAAd;;mBAgIe,K;;;;;;;ACnJf;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA,G;;;;;;ACvBA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,uEAAuE,2CAA0C,E;;;;;;ACFjH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE;AACA,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,gBAAe;AACf,iBAAgB;AAChB,0B;;;;;;AC5DA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;AACA;AACA;AACA,G;;;;;;ACfA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,G;;;;;;ACFA;AACA,uEAAsE,gBAAgB,UAAU,GAAG;AACnG,EAAC,E;;;;;;ACFD;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;ACPA;;;;AACA;;;;;;AAEA,KAAM,SAAS,gBAAM,WAAN,CAAkB;AAAA;;AAC/B,cAAW;AACT,aAAQ,iBAAU,MADT;AAET,gBAAW,iBAAU,MAFZ;AAGT,mBAAc,iBAAU,IAHf;AAIT,kBAAa,iBAAU,MAJd;AAKT,gBAAW,iBAAU,MALZ;AAMT,YAAO,iBAAU,MANR;AAOT,kBAAa,iBAAU,KAPd;AAQT,oBAAe,iBAAU,KARhB;AAST,oBAAe,iBAAU,KAThB;AAUT,oBAAe,iBAAU,IAVhB;AAWT,sBAAiB,iBAAU,IAXlB;AAYT,sBAAiB,iBAAU,IAZlB;AAaT,eAAU,iBAAU,IAbX;AAcT,cAAS,iBAAU,IAdV;AAeT,YAAO,iBAAU,IAfR;AAgBT,iBAAY,iBAAU,IAhBb;AAiBT,uBAAkB,iBAAU,MAjBnB;AAkBT,yBAAoB,iBAAU;AAlBrB,IADoB;;AAsB/B,kBAtB+B,6BAsBb;AAAA,kBACU,KAAK,KADf;AAAA,SACR,KADQ,UACR,KADQ;AAAA,SACD,MADC,UACD,MADC;;AAEhB,YAAO;AACL,YAAK,SAAS,MAAM,MAAN,CAAa,MAAb,CAAT,IAAiC,EADjC;AAEL,gBAAS;AAFJ,MAAP;AAID,IA5B8B;AA8B/B,4BA9B+B,qCA8BL,SA9BK,EA8BM;AAAA,SAC3B,KAD2B,GACT,SADS,CAC3B,KAD2B;AAAA,SACpB,MADoB,GACT,SADS,CACpB,MADoB;;AAEnC,UAAK,QAAL,CAAc;AACZ,YAAK,SAAS,MAAM,MAAN,CAAa,MAAb,CAAT,IAAiC,EAD1B;AAEZ,gBAAS;AAFG,MAAd;AAID,IApC8B;AAsC/B,gBAtC+B,yBAsCjB,KAtCiB,EAsCV;AACnB,SAAM,MAAM,MAAM,MAAN,CAAa,KAAzB;AACA,UAAK,QAAL,CAAc;AACZ;AADY,MAAd;AAFmB,mBASf,KAAK,KATU;AAAA,SAMjB,MANiB,WAMjB,MANiB;AAAA,SAMT,WANS,WAMT,WANS;AAAA,SAMI,aANJ,WAMI,aANJ;AAAA,SAMmB,aANnB,WAMmB,aANnB;AAAA,SAOjB,aAPiB,WAOjB,aAPiB;AAAA,SAOF,eAPE,WAOF,eAPE;AAAA,SAQjB,eARiB,WAQjB,eARiB;AAAA,SAQA,QARA,WAQA,QARA;AAAA,SAQU,UARV,WAQU,UARV;;;AAWnB,SAAI,GAAJ,EAAS;AACP,WAAM,gBAAgB,KAAK,KAAL,CAAW,KAAjC;AACA,WAAM,QAAQ,KAAK,aAAL,GAAqB,KAArB,EAAd;AACA,WAAM,SAAS,sBAAO,GAAP,EAAY,MAAZ,EAAoB,IAApB,CAAf;AACA,WAAI,CAAC,OAAO,OAAP,EAAL,EAAuB;AACrB,cAAK,QAAL,CAAc;AACZ,oBAAS;AADG,UAAd;AAGA;AACD;AACD,aAAM,IAAN,CAAW,OAAO,IAAP,EAAX,EAA0B,MAA1B,CAAiC,OAAO,MAAP,EAAjC,EAAkD,MAAlD,CAAyD,OAAO,MAAP,EAAzD;;AAEA;AACA,WACE,YAAY,OAAZ,CAAoB,MAAM,IAAN,EAApB,IAAoC,CAApC,IACA,cAAc,OAAd,CAAsB,MAAM,MAAN,EAAtB,IAAwC,CADxC,IAEA,cAAc,OAAd,CAAsB,MAAM,MAAN,EAAtB,IAAwC,CAH1C,EAIE;AACA,cAAK,QAAL,CAAc;AACZ,oBAAS;AADG,UAAd;AAGA;AACD;;AAED;AACA,WAAM,sBAAsB,eAA5B;AACA,WAAM,wBAAwB,gBAAgB,MAAM,IAAN,EAAhB,CAA9B;AACA,WAAM,wBAAwB,gBAAgB,MAAM,IAAN,EAAhB,EAA8B,MAAM,MAAN,EAA9B,CAA9B;AACA,WACG,uBAAuB,oBAAoB,OAApB,CAA4B,MAAM,IAAN,EAA5B,KAA6C,CAArE,IACC,yBAAyB,sBAAsB,OAAtB,CAA8B,MAAM,MAAN,EAA9B,KAAiD,CAD3E,IAEC,yBAAyB,sBAAsB,OAAtB,CAA8B,MAAM,MAAN,EAA9B,KAAiD,CAH7E,EAIE;AACA,cAAK,QAAL,CAAc;AACZ,oBAAS;AADG,UAAd;AAGA;AACD;;AAED,WAAI,aAAJ,EAAmB;AACjB,aACE,cAAc,IAAd,OAAyB,MAAM,IAAN,EAAzB,IACA,cAAc,MAAd,OAA2B,MAAM,MAAN,EAD3B,IAEA,cAAc,MAAd,OAA2B,MAAM,MAAN,EAH7B,EAIE;AACA;AACA,eAAM,eAAe,cAAc,KAAd,EAArB;AACA,wBAAa,IAAb,CAAkB,MAAM,IAAN,EAAlB;AACA,wBAAa,MAAb,CAAoB,MAAM,MAAN,EAApB;AACA,wBAAa,MAAb,CAAoB,MAAM,MAAN,EAApB;AACA,oBAAS,YAAT;AACD;AACF,QAbD,MAaO,IAAI,kBAAkB,KAAtB,EAA6B;AAClC,kBAAS,KAAT;AACD;AACF,MAvDD,MAuDO,IAAI,UAAJ,EAAgB;AACrB,gBAAS,IAAT;AACD,MAFM,MAEA;AACL,YAAK,QAAL,CAAc;AACZ,kBAAS;AADG,QAAd;AAGA;AACD;;AAED,UAAK,QAAL,CAAc;AACZ,gBAAS;AADG,MAAd;AAGD,IApH8B;AAsH/B,YAtH+B,qBAsHrB,CAtHqB,EAsHlB;AACX,SAAI,EAAE,OAAF,KAAc,EAAlB,EAAsB;AACpB,YAAK,KAAL,CAAW,KAAX;AACD;AACF,IA1H8B;AA4H/B,UA5H+B,qBA4HrB;AACR,UAAK,QAAL,CAAc,EAAE,KAAK,EAAP,EAAd;AACA,UAAK,KAAL,CAAW,OAAX;AACD,IA/H8B;AAiI/B,iBAjI+B,4BAiId;AAAA,mBACmB,KAAK,KADxB;AAAA,SACP,SADO,WACP,SADO;AAAA,SACI,UADJ,WACI,UADJ;;AAEf,SAAI,CAAC,UAAL,EAAiB;AACf,cAAO,IAAP;AACD;AACD,YAAQ;AACN,kBAAc,SAAd,eADM;AAEN,aAAK,QAFC;AAGN,cAAO,KAAK,KAAL,CAAW,SAHZ;AAIN,oBAAa,KAAK;AAJZ,OAAR;AAMD,IA5I8B;AA8I/B,gBA9I+B,2BA8If;AACd,YAAO,KAAK,KAAL,CAAW,KAAX,IAAoB,KAAK,KAAL,CAAW,gBAAtC;AACD,IAhJ8B;AAkJ/B,WAlJ+B,sBAkJpB;AAAA,mBAC0B,KAAK,KAD/B;AAAA,SACD,SADC,WACD,SADC;AAAA,SACU,WADV,WACU,WADV;AAAA,kBAEgB,KAAK,KAFrB;AAAA,SAED,OAFC,UAED,OAFC;AAAA,SAEQ,GAFR,UAEQ,GAFR;;AAGT,SAAM,eAAe,UAAa,SAAb,sBAAyC,EAA9D;AACA,YACE;AACE,kBAAc,SAAd,gBAAkC,YADpC;AAEE,YAAI,OAFN;AAGE,kBAAW,KAAK,SAHlB;AAIE,cAAO,GAJT;AAKE,oBAAa,WALf;AAME,iBAAU,KAAK;AANjB,OADF;AAUD,IAhK8B;AAkK/B,SAlK+B,oBAkKtB;AAAA,SACC,SADD,GACe,KAAK,KADpB,CACC,SADD;;AAEP,YACE;AAAA;AAAA,SAAK,WAAc,SAAd,gBAAL;AACG,YAAK,QAAL,EADH;AAEG,YAAK,cAAL;AAFH,MADF;AAMD;AA1K8B,EAAlB,CAAf;;mBA6Ke,M;;;;;;;;;;;;;AChLf;;;;AACA;;;;;;AAEA,KAAM,eAAe,SAAf,YAAe,CAAC,MAAD,EAAS,eAAT,EAA6B;AAChD,OAAI,aAAW,MAAf;AACA,OAAI,SAAS,EAAb,EAAiB;AACf,mBAAY,MAAZ;AACD;;AAED,OAAI,WAAW,KAAf;AACA,OAAI,mBAAmB,gBAAgB,OAAhB,CAAwB,MAAxB,KAAmC,CAA1D,EAA6D;AAC3D,gBAAW,IAAX;AACD;;AAED,UAAO;AACL,iBADK;AAEL;AAFK,IAAP;AAID,EAfD;;AAiBA,KAAM,WAAW,gBAAM,WAAN,CAAkB;AAAA;;AACjC,cAAW;AACT,aAAQ,iBAAU,MADT;AAET,uBAAkB,iBAAU,MAFnB;AAGT,gBAAW,iBAAU,MAHZ;AAIT,YAAO,iBAAU,MAJR;AAKT,eAAU,iBAAU,IALX;AAMT,eAAU,iBAAU,IANX;AAOT,iBAAY,iBAAU,IAPb;AAQT,kBAAa,iBAAU,KARd;AAST,oBAAe,iBAAU,KAThB;AAUT,oBAAe,iBAAU,KAVhB;AAWT,oBAAe,iBAAU,IAXhB;AAYT,sBAAiB,iBAAU,IAZlB;AAaT,sBAAiB,iBAAU,IAblB;AAcT,iCAA4B,iBAAU;AAd7B,IADsB;;AAkBjC,eAlBiC,wBAkBpB,IAlBoB,EAkBd,SAlBc,EAkBH;AAAA,kBACW,KAAK,KADhB;AAAA,SACpB,QADoB,UACpB,QADoB;AAAA,SACV,gBADU,UACV,gBADU;;AAE5B,SAAM,QAAQ,CAAC,KAAK,KAAL,CAAW,KAAX,IAAoB,gBAArB,EAAuC,KAAvC,EAAd;AACA,SAAI,SAAS,MAAb,EAAqB;AACnB,aAAM,IAAN,CAAW,SAAX;AACD,MAFD,MAEO,IAAI,SAAS,QAAb,EAAuB;AAC5B,aAAM,MAAN,CAAa,SAAb;AACD,MAFM,MAEA;AACL,aAAM,MAAN,CAAa,SAAb;AACD;AACD,cAAS,KAAT;AACD,IA7BgC;AA+BjC,qBA/BiC,8BA+Bd,KA/Bc,EA+BP;AACxB,UAAK,KAAL,CAAW,0BAAX,CAAsC,KAAtC;AACD,IAjCgC;AAmCjC,gBAnCiC,yBAmCnB,IAnCmB,EAmCb;AAAA,mBAC0C,KAAK,KAD/C;AAAA,SACV,SADU,WACV,SADU;AAAA,SACC,WADD,WACC,WADD;AAAA,SACc,aADd,WACc,aADd;AAAA,SAC6B,QAD7B,WAC6B,QAD7B;;AAElB,SAAI,CAAC,QAAL,EAAe;AACb,cAAO,IAAP;AACD;AACD,SAAM,kBAAkB,eAAxB;;AAEA,YACE;AACE,kBAAW,SADb;AAEE,gBAAS,YAAY,GAAZ,CAAgB;AAAA,gBAAU,aAAa,MAAb,EAAqB,eAArB,CAAV;AAAA,QAAhB,CAFX;AAGE,sBAAe,YAAY,OAAZ,CAAoB,IAApB,CAHjB;AAIE,aAAK,MAJP;AAKE,iBAAU,KAAK,YALjB;AAME,qBAAc,KAAK,kBAAL,CAAwB,IAAxB,CAA6B,IAA7B,EAAmC,MAAnC;AANhB,OADF;AAUD,IApDgC;AAsDjC,kBAtDiC,2BAsDjB,MAtDiB,EAsDT;AAAA,mBACkD,KAAK,KADvD;AAAA,SACd,SADc,WACd,SADc;AAAA,SACH,aADG,WACH,aADG;AAAA,SACY,eADZ,WACY,eADZ;AAAA,SAC6B,gBAD7B,WAC6B,gBAD7B;;AAEtB,SAAM,QAAQ,KAAK,KAAL,CAAW,KAAX,IAAoB,gBAAlC;AACA,SAAM,kBAAkB,gBAAgB,MAAM,IAAN,EAAhB,CAAxB;;AAEA,YACE;AACE,kBAAW,SADb;AAEE,gBAAS,cAAc,GAAd,CAAkB;AAAA,gBAAU,aAAa,MAAb,EAAqB,eAArB,CAAV;AAAA,QAAlB,CAFX;AAGE,sBAAe,cAAc,OAAd,CAAsB,MAAtB,CAHjB;AAIE,aAAK,QAJP;AAKE,iBAAU,KAAK,YALjB;AAME,qBAAc,KAAK,kBAAL,CAAwB,IAAxB,CAA6B,IAA7B,EAAmC,QAAnC;AANhB,OADF;AAUD,IArEgC;AAuEjC,kBAvEiC,2BAuEjB,MAvEiB,EAuET;AAAA,mBAC8D,KAAK,KADnE;AAAA,SACd,SADc,WACd,SADc;AAAA,SACH,aADG,WACH,aADG;AAAA,SACY,eADZ,WACY,eADZ;AAAA,SAC6B,UAD7B,WAC6B,UAD7B;AAAA,SACyC,gBADzC,WACyC,gBADzC;;AAEtB,SAAI,CAAC,UAAL,EAAiB;AACf,cAAO,IAAP;AACD;AACD,SAAM,QAAQ,KAAK,KAAL,CAAW,KAAX,IAAoB,gBAAlC;AACA,SAAM,kBAAkB,gBAAgB,MAAM,IAAN,EAAhB,EAA8B,MAAM,MAAN,EAA9B,CAAxB;;AAEA,YACE;AACE,kBAAW,SADb;AAEE,gBAAS,cAAc,GAAd,CAAkB;AAAA,gBAAU,aAAa,MAAb,EAAqB,eAArB,CAAV;AAAA,QAAlB,CAFX;AAGE,sBAAe,cAAc,OAAd,CAAsB,MAAtB,CAHjB;AAIE,aAAK,QAJP;AAKE,iBAAU,KAAK,YALjB;AAME,qBAAc,KAAK,kBAAL,CAAwB,IAAxB,CAA6B,IAA7B,EAAmC,QAAnC;AANhB,OADF;AAUD,IAzFgC;AA2FjC,SA3FiC,oBA2FxB;AAAA,mBACiC,KAAK,KADtC;AAAA,SACC,SADD,WACC,SADD;AAAA,SACY,gBADZ,WACY,gBADZ;;AAEP,SAAM,QAAQ,KAAK,KAAL,CAAW,KAAX,IAAoB,gBAAlC;AACA,YACE;AAAA;AAAA,SAAK,WAAc,SAAd,cAAL;AACG,YAAK,aAAL,CAAmB,MAAM,IAAN,EAAnB,CADH;AAEG,YAAK,eAAL,CAAqB,MAAM,MAAN,EAArB,CAFH;AAGG,YAAK,eAAL,CAAqB,MAAM,MAAN,EAArB;AAHH,MADF;AAOD;AArGgC,EAAlB,CAAjB;;mBAwGe,Q;;;;;;;;;;;;;;;;;AC5Hf;;;;AACA;;;;AACA;;;;;;AAEA,KAAM,WAAW,SAAX,QAAW,CAAC,OAAD,EAAU,EAAV,EAAc,QAAd,EAA2B;AAC1C,OAAM,wBAAwB,OAAO,qBAAP,IAC5B,SAAS,4BAAT,GAAwC;AACtC,YAAO,WAAW,UAAU,CAAV,CAAX,EAAyB,EAAzB,CAAP;AACD,IAHH;AAIA;AACA,OAAI,YAAY,CAAhB,EAAmB;AACjB,aAAQ,SAAR,GAAoB,EAApB;AACA;AACD;AACD,OAAM,aAAa,KAAK,QAAQ,SAAhC;AACA,OAAM,UAAU,aAAa,QAAb,GAAwB,EAAxC;;AAEA,yBAAsB,YAAM;AAC1B,aAAQ,SAAR,GAAoB,QAAQ,SAAR,GAAoB,OAAxC;AACA,SAAI,QAAQ,SAAR,KAAsB,EAA1B,EAA8B;AAC9B,cAAS,OAAT,EAAkB,EAAlB,EAAsB,WAAW,EAAjC;AACD,IAJD;AAKD,EAlBD;;AAoBA,KAAM,SAAS,gBAAM,WAAN,CAAkB;AAAA;;AAC/B,cAAW;AACT,gBAAW,iBAAU,MADZ;AAET,cAAS,iBAAU,KAFV;AAGT,oBAAe,iBAAU,MAHhB;AAIT,WAAM,iBAAU,MAJP;AAKT,eAAU,iBAAU,IALX;AAMT,mBAAc,iBAAU;AANf,IADoB;;AAU/B,oBAV+B,+BAUX;AAClB;AACA,UAAK,gBAAL,CAAsB,CAAtB;AACD,IAb8B;AAe/B,qBAf+B,8BAeZ,SAfY,EAeD;AAC5B;AACA,SAAI,UAAU,aAAV,KAA4B,KAAK,KAAL,CAAW,aAA3C,EAA0D;AACxD,YAAK,gBAAL,CAAsB,GAAtB;AACD;AACF,IApB8B;AAsB/B,WAtB+B,oBAsBtB,KAtBsB,EAsBf;AAAA,kBACa,KAAK,KADlB;AAAA,SACN,QADM,UACN,QADM;AAAA,SACI,IADJ,UACI,IADJ;;AAEd,cAAS,IAAT,EAAe,KAAf;AACD,IAzB8B;AA2B/B,aA3B+B,wBA2BlB;AAAA;;AAAA,mBACmC,KAAK,KADxC;AAAA,SACH,OADG,WACH,OADG;AAAA,SACM,aADN,WACM,aADN;AAAA,SACqB,SADrB,WACqB,SADrB;;AAEX,YAAO,QAAQ,GAAR,CAAY,UAAC,IAAD,EAAO,KAAP,EAAiB;AAAA;;AAClC,WAAM,MAAM,wFACN,SADM,8BAC+B,kBAAkB,KADjD,8CAEN,SAFM,8BAE+B,KAAK,QAFpC,gBAAZ;AAIA,WAAI,UAAU,IAAd;AACA,WAAI,CAAC,KAAK,QAAV,EAAoB;AAClB,mBAAU,MAAK,QAAL,CAAc,IAAd,QAAyB,CAAC,KAAK,KAA/B,CAAV;AACD;AACD,cAAQ;AAAA;AAAA;AACN,sBAAW,GADL;AAEN,gBAAK,KAFC;AAGN,oBAAS,OAHH;AAIN,qBAAU,KAAK;AAJT;AAML,cAAK;AANA,QAAR;AAQD,MAjBM,CAAP;AAkBD,IA/C8B;AAiD/B,mBAjD+B,4BAiDd,QAjDc,EAiDJ;AACzB;AACA,SAAM,SAAS,mBAAS,WAAT,CAAqB,IAArB,CAAf;AACA,SAAM,OAAO,mBAAS,WAAT,CAAqB,KAAK,IAAL,CAAU,IAA/B,CAAb;AACA,SAAI,QAAQ,KAAK,KAAL,CAAW,aAAvB;AACA,SAAI,QAAQ,CAAZ,EAAe;AACb,eAAQ,CAAR;AACD;AACD,SAAM,YAAY,KAAK,QAAL,CAAc,KAAd,CAAlB;AACA,SAAM,KAAK,UAAU,SAArB;AACA,cAAS,MAAT,EAAiB,EAAjB,EAAqB,QAArB;AACD,IA5D8B;AA8D/B,SA9D+B,oBA8DtB;AACP,SAAI,KAAK,KAAL,CAAW,OAAX,CAAmB,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,cAAO,IAAP;AACD;;AAHM,SAKC,SALD,GAKe,KAAK,KALpB,CAKC,SALD;;;AAOP,YACE;AAAA;AAAA;AACE,oBAAc,SAAd,YADF;AAEE,uBAAc,KAAK,KAAL,CAAW;AAF3B;AAIE;AAAA;AAAA,WAAI,KAAI,MAAR;AAAgB,cAAK,UAAL;AAAhB;AAJF,MADF;AAQD;AA7E8B,EAAlB,CAAf;;mBAgFe,M;;;;;;;ACxGf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAgB;;AAEhB;AACA;;AAEA,kBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,EAAC;;;;;;;;;;;;AC/CD,KAAM,qBAAqB;AACzB,YAAS,CADgB;AAEzB,YAAS;AAFgB,EAA3B;;AAKA,KAAM,eAAe,CAAC,CAAD,EAAI,CAAJ,CAArB;;AAEA,KAAM,aAAa;AACjB,eAAY;AACV,aAAQ,CAAC,IAAD,EAAO,IAAP,CADE;AAEV,eAAU,kBAFA;AAGV,aAAQ,CAAC,CAAD,EAAI,CAAC,CAAL,CAHE;AAIV;AAJU,IADK;AAOjB,gBAAa;AACX,aAAQ,CAAC,IAAD,EAAO,IAAP,CADG;AAEX,eAAU,kBAFC;AAGX,aAAQ,CAAC,CAAD,EAAI,CAAC,CAAL,CAHG;AAIX;AAJW,IAPI;AAajB,aAAU;AACR,aAAQ,CAAC,IAAD,EAAO,IAAP,CADA;AAER,eAAU,kBAFF;AAGR,aAAQ,CAAC,CAAD,EAAI,CAAJ,CAHA;AAIR;AAJQ,IAbO;AAmBjB,YAAS;AACP,aAAQ,CAAC,IAAD,EAAO,IAAP,CADD;AAEP,eAAU,kBAFH;AAGP,aAAQ,CAAC,CAAD,EAAI,CAAJ,CAHD;AAIP;AAJO;AAnBQ,EAAnB;;mBA2Be,U","file":"common.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t4:0\n \t};\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + ({\"0\":\"disabled\",\"1\":\"hidden\",\"2\":\"pick-time\",\"3\":\"value-and-defaultValue\"}[chunkId]||chunkId) + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\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\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 84f8ccef8fb0f107790d\n **/","// removed by extract-text-webpack-plugin\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./assets/index.less\n ** module id = 2\n ** module chunks = 4\n **/","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/react.js\n ** module id = 3\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactPureComponent = require('./ReactPureComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar onlyChild = require('./onlyChild');\nvar warning = require('fbjs/lib/warning');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (process.env.NODE_ENV !== 'production') {\n var warned = false;\n __spread = function () {\n process.env.NODE_ENV !== '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;\n warned = true;\n return _assign.apply(null, arguments);\n };\n}\n\nvar React = {\n\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactComponent,\n PureComponent: ReactPureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: ReactClass.createClass,\n createFactory: createFactory,\n createMixin: function (mixin) {\n // Currently a noop. Will be used to validate and trace mixins.\n return mixin;\n },\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nmodule.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/React.js\n ** module id = 4\n ** module chunks = 4\n **/","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n } else {\n return cachedSetTimeout.call(null, fun, 0);\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n clearTimeout(marker);\n } else {\n cachedClearTimeout.call(null, marker);\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 5\n ** module chunks = 4\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/object-assign/index.js\n ** module id = 6\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func;\n var context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result;\n var keyPrefix = bookKeeping.keyPrefix;\n var func = bookKeeping.func;\n var context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactChildren.js\n ** module id = 7\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar fiveArgumentPooler = function (a1, a2, a3, a4, a5) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4, a5);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4, a5);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler,\n fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/PooledClass.js\n ** module id = 8\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reactProdInvariant\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/reactProdInvariant.js\n ** module id = 9\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/invariant.js\n ** module id = 10\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar warning = require('fbjs/lib/warning');\nvar canDefineProperty = require('./canDefineProperty');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allow us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {};\n var shadowChildren = Array.isArray(props.children) ? props.children.slice(0) : props.children;\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n if (canDefineProperty) {\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n });\n // self and source are DEV only properties.\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n });\n Object.defineProperty(element, '_shadowChildren', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: shadowChildren\n });\n // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n } else {\n element._store.validated = false;\n element._self = self;\n element._shadowChildren = shadowChildren;\n element._source = source;\n }\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\n */\nReactElement.createElement = function (type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(\n /* eslint-disable no-proto */\n config.__proto__ == null || config.__proto__ === Object.prototype,\n /* eslint-enable no-proto */\n 'React.createElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n // Create dummy `key` and `ref` property to `props` to warn users against its use\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n process.env.NODE_ENV !== '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;\n }\n return undefined;\n };\n warnAboutAccessingKey.isReactWarning = true;\n\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n process.env.NODE_ENV !== '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;\n }\n return undefined;\n };\n warnAboutAccessingRef.isReactWarning = true;\n\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n if (!props.hasOwnProperty('key')) {\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n if (!props.hasOwnProperty('ref')) {\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\n */\nReactElement.createFactory = function (type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n return newElement;\n};\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\n */\nReactElement.cloneElement = function (element, config, children) {\n var propName;\n\n // Original props are copied\n var props = _assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n // Self is preserved since the owner is preserved.\n var self = element._self;\n // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(\n /* eslint-disable no-proto */\n config.__proto__ == null || config.__proto__ === Object.prototype,\n /* eslint-enable no-proto */\n 'React.cloneElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;\n }\n\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE;\n\nmodule.exports = ReactElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactElement.js\n ** module id = 11\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\n\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactCurrentOwner.js\n ** module id = 12\n ** module chunks = 4\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(condition, format) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/warning.js\n ** module id = 13\n ** module chunks = 4\n **/","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/emptyFunction.js\n ** module id = 14\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule canDefineProperty\n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n Object.defineProperty({}, 'x', { get: function () {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/canDefineProperty.js\n ** module id = 15\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== '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;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n 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.';\n if (children._isReactElement) {\n 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.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== '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;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/traverseAllChildren.js\n ** module id = 16\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getIteratorFn.js\n ** module id = 17\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule KeyEscapeUtils\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/KeyEscapeUtils.js\n ** module id = 18\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== '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;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'forceUpdate');\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function () {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nmodule.exports = ReactComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactComponent.js\n ** module id = 19\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== '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;\n }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback) {},\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactNoopUpdateQueue.js\n ** module id = 20\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/emptyObject.js\n ** module id = 21\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPureComponent\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPureComponent.js\n ** module id = 22\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar keyMirror = require('fbjs/lib/keyMirror');\nvar keyOf = require('fbjs/lib/keyOf');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n /**\n * These methods may be defined only once by the class specification or mixin.\n */\n DEFINE_ONCE: null,\n /**\n * These methods may be defined by both the class specification and mixins.\n * Subsequent definitions will be chained. These methods must return void.\n */\n DEFINE_MANY: null,\n /**\n * These methods are overriding the base class.\n */\n OVERRIDE_BASE: null,\n /**\n * These methods are similar to DEFINE_MANY, except we assume they return\n * objects. We try to merge the keys of the return values of all the mixed in\n * functions. If there is a key conflict we throw.\n */\n DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: SpecPolicy.DEFINE_MANY,\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: SpecPolicy.DEFINE_MANY,\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @nosideeffects\n * @required\n */\n render: SpecPolicy.DEFINE_ONCE,\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n displayName: function (Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function (Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function (Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext);\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n },\n contextTypes: function (Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context);\n }\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function (Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function (Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an invariant so components\n // don't show up in prod but only in __DEV__\n process.env.NODE_ENV !== '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;\n }\n }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? process.env.NODE_ENV !== '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;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? process.env.NODE_ENV !== '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;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== '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;\n }\n\n return;\n }\n\n !(typeof spec !== 'function') ? process.env.NODE_ENV !== '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;\n !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n !!isReserved ? process.env.NODE_ENV !== '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;\n\n var isInherited = name in Constructor;\n !!isInherited ? process.env.NODE_ENV !== '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;\n Constructor[name] = property;\n }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n !(one[key] === undefined) ? process.env.NODE_ENV !== '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;\n one[key] = two[key];\n }\n }\n return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;\n } else if (!args.length) {\n process.env.NODE_ENV !== '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;\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function (newState, callback) {\n this.updater.enqueueReplaceState(this, newState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'replaceState');\n }\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function () {\n return this.updater.isMounted(this);\n }\n};\n\nvar ReactClassComponent = function () {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n createClass: function (spec) {\n var Constructor = function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== '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;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n this.state = initialState;\n };\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, spec);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n !Constructor.prototype.render ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== '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;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n },\n\n injection: {\n injectMixin: function (mixin) {\n injectedMixins.push(mixin);\n }\n }\n\n};\n\nmodule.exports = ReactClass;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactClass.js\n ** module id = 23\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar ReactPropTypeLocations = keyMirror({\n prop: null,\n context: null,\n childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypeLocations.js\n ** module id = 24\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function keyMirror(obj) {\n var ret = {};\n var key;\n !(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : void 0;\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\n\nmodule.exports = keyMirror;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/keyMirror.js\n ** module id = 25\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypeLocationNames.js\n ** module id = 26\n ** module chunks = 4\n **/","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\nvar keyOf = function keyOf(oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\nmodule.exports = keyOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/keyOf.js\n ** module id = 27\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\nvar mapObject = require('fbjs/lib/mapObject');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @param {string} tag Tag name (e.g. `div`).\n * @private\n */\nfunction createDOMFactory(tag) {\n if (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n return ReactElementValidator.createFactory(tag);\n }\n return ReactElement.createFactory(tag);\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = mapObject({\n a: 'a',\n abbr: 'abbr',\n address: 'address',\n area: 'area',\n article: 'article',\n aside: 'aside',\n audio: 'audio',\n b: 'b',\n base: 'base',\n bdi: 'bdi',\n bdo: 'bdo',\n big: 'big',\n blockquote: 'blockquote',\n body: 'body',\n br: 'br',\n button: 'button',\n canvas: 'canvas',\n caption: 'caption',\n cite: 'cite',\n code: 'code',\n col: 'col',\n colgroup: 'colgroup',\n data: 'data',\n datalist: 'datalist',\n dd: 'dd',\n del: 'del',\n details: 'details',\n dfn: 'dfn',\n dialog: 'dialog',\n div: 'div',\n dl: 'dl',\n dt: 'dt',\n em: 'em',\n embed: 'embed',\n fieldset: 'fieldset',\n figcaption: 'figcaption',\n figure: 'figure',\n footer: 'footer',\n form: 'form',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n head: 'head',\n header: 'header',\n hgroup: 'hgroup',\n hr: 'hr',\n html: 'html',\n i: 'i',\n iframe: 'iframe',\n img: 'img',\n input: 'input',\n ins: 'ins',\n kbd: 'kbd',\n keygen: 'keygen',\n label: 'label',\n legend: 'legend',\n li: 'li',\n link: 'link',\n main: 'main',\n map: 'map',\n mark: 'mark',\n menu: 'menu',\n menuitem: 'menuitem',\n meta: 'meta',\n meter: 'meter',\n nav: 'nav',\n noscript: 'noscript',\n object: 'object',\n ol: 'ol',\n optgroup: 'optgroup',\n option: 'option',\n output: 'output',\n p: 'p',\n param: 'param',\n picture: 'picture',\n pre: 'pre',\n progress: 'progress',\n q: 'q',\n rp: 'rp',\n rt: 'rt',\n ruby: 'ruby',\n s: 's',\n samp: 'samp',\n script: 'script',\n section: 'section',\n select: 'select',\n small: 'small',\n source: 'source',\n span: 'span',\n strong: 'strong',\n style: 'style',\n sub: 'sub',\n summary: 'summary',\n sup: 'sup',\n table: 'table',\n tbody: 'tbody',\n td: 'td',\n textarea: 'textarea',\n tfoot: 'tfoot',\n th: 'th',\n thead: 'thead',\n time: 'time',\n title: 'title',\n tr: 'tr',\n track: 'track',\n u: 'u',\n ul: 'ul',\n 'var': 'var',\n video: 'video',\n wbr: 'wbr',\n\n // SVG\n circle: 'circle',\n clipPath: 'clipPath',\n defs: 'defs',\n ellipse: 'ellipse',\n g: 'g',\n image: 'image',\n line: 'line',\n linearGradient: 'linearGradient',\n mask: 'mask',\n path: 'path',\n pattern: 'pattern',\n polygon: 'polygon',\n polyline: 'polyline',\n radialGradient: 'radialGradient',\n rect: 'rect',\n stop: 'stop',\n svg: 'svg',\n text: 'text',\n tspan: 'tspan'\n\n}, createDOMFactory);\n\nmodule.exports = ReactDOMFactories;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMFactories.js\n ** module id = 28\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n * - the property value\n * - the property name\n * - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\nfunction mapObject(object, callback, context) {\n if (!object) {\n return null;\n }\n var result = {};\n for (var name in object) {\n if (hasOwnProperty.call(object, name)) {\n result[name] = callback.call(context, object[name], name, object);\n }\n }\n return result;\n}\n\nmodule.exports = mapObject;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/mapObject.js\n ** module id = 29\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\n\nvar checkReactTypeSpec = require('./checkReactTypeSpec');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar getIteratorFn = require('./getIteratorFn');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n info = ' Check the top-level render call using <' + parentName + '>.';\n }\n }\n return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n\n var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});\n\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (memoizer[currentComponentErrorInfo]) {\n return;\n }\n memoizer[currentComponentErrorInfo] = true;\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = '';\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n }\n\n process.env.NODE_ENV !== '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, ReactComponentTreeDevtool.getCurrentStackAddendum(element)) : void 0;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (ReactElement.isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (ReactElement.isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n // Entry iterators provide implicit keys.\n if (iteratorFn) {\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (ReactElement.isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n var componentClass = element.type;\n if (typeof componentClass !== 'function') {\n return;\n }\n var name = componentClass.displayName || componentClass.name;\n if (componentClass.propTypes) {\n checkReactTypeSpec(componentClass.propTypes, element.props, ReactPropTypeLocations.prop, name, element, null);\n }\n if (typeof componentClass.getDefaultProps === 'function') {\n process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n }\n}\n\nvar ReactElementValidator = {\n\n createElement: function (type, props, children) {\n var validType = typeof type === 'string' || typeof type === 'function';\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n process.env.NODE_ENV !== 'production' ? warning(validType, '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;\n\n var element = ReactElement.createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n validatePropTypes(element);\n\n return element;\n },\n\n createFactory: function (type) {\n var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n // Legacy hook TODO: Warn if this is accessed\n validatedFactory.type = type;\n\n if (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0;\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n }\n\n return validatedFactory;\n },\n\n cloneElement: function (element, props, children) {\n var newElement = ReactElement.cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n\n};\n\nmodule.exports = ReactElementValidator;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactElementValidator.js\n ** module id = 30\n ** module chunks = 4\n **/","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentTreeDevtool\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar tree = {};\nvar unmountedIDs = {};\nvar rootIDs = {};\n\nfunction updateTree(id, update) {\n if (!tree[id]) {\n tree[id] = {\n element: null,\n parentID: null,\n ownerID: null,\n text: null,\n childIDs: [],\n displayName: 'Unknown',\n isMounted: false,\n updateCount: 0\n };\n }\n update(tree[id]);\n}\n\nfunction purgeDeep(id) {\n var item = tree[id];\n if (item) {\n var childIDs = item.childIDs;\n\n delete tree[id];\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeDevtool.getDisplayName(id);\n var element = ReactComponentTreeDevtool.getElement(id);\n var ownerID = ReactComponentTreeDevtool.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeDevtool.getDisplayName(ownerID);\n }\n process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeDevtool: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeDevtool = {\n onSetDisplayName: function (id, displayName) {\n updateTree(id, function (item) {\n return item.displayName = displayName;\n });\n },\n onSetChildren: function (id, nextChildIDs) {\n updateTree(id, function (item) {\n item.childIDs = nextChildIDs;\n\n nextChildIDs.forEach(function (nextChildID) {\n var nextChild = tree[nextChildID];\n !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected devtool events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('68') : void 0;\n !(nextChild.displayName != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetDisplayName() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('69') : void 0;\n !(nextChild.childIDs != null || nextChild.text != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() or onSetText() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('70') : void 0;\n !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent ID is missing.\n }\n !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetParent() and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('72', nextChildID, nextChild.parentID, id) : void 0;\n });\n });\n },\n onSetOwner: function (id, ownerID) {\n updateTree(id, function (item) {\n return item.ownerID = ownerID;\n });\n },\n onSetParent: function (id, parentID) {\n updateTree(id, function (item) {\n return item.parentID = parentID;\n });\n },\n onSetText: function (id, text) {\n updateTree(id, function (item) {\n return item.text = text;\n });\n },\n onBeforeMountComponent: function (id, element) {\n updateTree(id, function (item) {\n return item.element = element;\n });\n },\n onBeforeUpdateComponent: function (id, element) {\n updateTree(id, function (item) {\n return item.element = element;\n });\n },\n onMountComponent: function (id) {\n updateTree(id, function (item) {\n return item.isMounted = true;\n });\n },\n onMountRootComponent: function (id) {\n rootIDs[id] = true;\n },\n onUpdateComponent: function (id) {\n updateTree(id, function (item) {\n return item.updateCount++;\n });\n },\n onUnmountComponent: function (id) {\n updateTree(id, function (item) {\n return item.isMounted = false;\n });\n unmountedIDs[id] = true;\n delete rootIDs[id];\n },\n purgeUnmountedComponents: function () {\n if (ReactComponentTreeDevtool._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var id in unmountedIDs) {\n purgeDeep(id);\n }\n unmountedIDs = {};\n },\n isMounted: function (id) {\n var item = tree[id];\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function (topElement) {\n var info = '';\n if (topElement) {\n var type = topElement.type;\n var name = typeof type === 'function' ? type.displayName || type.name : type;\n var owner = topElement._owner;\n info += describeComponentFrame(name || 'Unknown', topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeDevtool.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function (id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeDevtool.getParentID(id);\n }\n return info;\n },\n getChildIDs: function (id) {\n var item = tree[id];\n return item ? item.childIDs : [];\n },\n getDisplayName: function (id) {\n var item = tree[id];\n return item ? item.displayName : 'Unknown';\n },\n getElement: function (id) {\n var item = tree[id];\n return item ? item.element : null;\n },\n getOwnerID: function (id) {\n var item = tree[id];\n return item ? item.ownerID : null;\n },\n getParentID: function (id) {\n var item = tree[id];\n return item ? item.parentID : null;\n },\n getSource: function (id) {\n var item = tree[id];\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function (id) {\n var item = tree[id];\n return item ? item.text : null;\n },\n getUpdateCount: function (id) {\n var item = tree[id];\n return item ? item.updateCount : 0;\n },\n getRootIDs: function () {\n return Object.keys(rootIDs);\n },\n getRegisteredIDs: function () {\n return Object.keys(tree);\n }\n};\n\nmodule.exports = ReactComponentTreeDevtool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactComponentTreeDevtool.js\n ** module id = 31\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule checkReactTypeSpec\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeDevtool;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n}\n\nvar loggedTypeFailures = {};\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?object} element The React element that is being type-checked\n * @param {?number} debugID The React component instance that is being type-checked\n * @private\n */\nfunction checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== '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;\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n process.env.NODE_ENV !== '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) : void 0;\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var componentStackInfo = '';\n\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeDevtool) {\n ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n }\n if (debugID !== null) {\n componentStackInfo = ReactComponentTreeDevtool.getStackAddendumByID(debugID);\n } else if (element !== null) {\n componentStackInfo = ReactComponentTreeDevtool.getCurrentStackAddendum(element);\n }\n }\n\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;\n }\n }\n }\n}\n\nmodule.exports = checkReactTypeSpec;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/checkReactTypeSpec.js\n ** module id = 32\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypesSecret\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypesSecret.js\n ** module id = 33\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getIteratorFn = require('./getIteratorFn');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n};\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n/*eslint-disable no-self-compare*/\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n/*eslint-enable no-self-compare*/\n\nfunction createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (process.env.NODE_ENV !== 'production') {\n if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') {\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey]) {\n process.env.NODE_ENV !== '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;\n manualPropTypeCallCache[cacheKey] = true;\n }\n }\n }\n if (props[propName] == null) {\n var locationName = ReactPropTypeLocationNames[location];\n if (isRequired) {\n return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n var locationName = ReactPropTypeLocationNames[location];\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var locationName = ReactPropTypeLocationNames[location];\n var propType = getPropType(propValue);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactElement.isValidElement(propValue)) {\n var locationName = ReactPropTypeLocationNames[location];\n var propType = getPropType(propValue);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var locationName = ReactPropTypeLocationNames[location];\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n var valuesString = JSON.stringify(expectedValues);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || ReactElement.isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n}\n\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypes.js\n ** module id = 34\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '15.3.0';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactVersion.js\n ** module id = 35\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : _prodInvariant('23') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/onlyChild.js\n ** module id = 36\n ** module chunks = 4\n **/","'use strict';\n\nmodule.exports = require('react/lib/ReactDOM');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-dom/index.js\n ** module id = 37\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactMount = require('./ReactMount');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.render,\n unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n version: ReactVersion,\n\n /* eslint-disable camelcase */\n unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function (inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\n });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n // First check if devtools is not installed\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== '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;\n\n // If we're in IE8, check to see if we are in compatibility mode and provide\n // information on preventing compatibility mode\n var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : void 0;\n\n var expectedFeatures = [\n // shims\n 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];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nmodule.exports = ReactDOM;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOM.js\n ** module id = 38\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponentTree\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID == null) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (childNode.nodeType === 1 && childNode.getAttribute(ATTR_NAME) === String(childID) || childNode.nodeType === 8 && childNode.nodeValue === ' react-text: ' + childID + ' ' || childNode.nodeType === 8 && childNode.nodeValue === ' react-empty: ' + childID + ' ') {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMComponentTree.js\n ** module id = 39\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * isCustomAttribute: function that given an attribute name will return true\n * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n * attributes where it's impossible to enumerate all of the possible\n * attribute names,\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n * attribute namespace URL. (Attribute names not specified use no namespace.)\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function (domPropertyConfig) {\n var Injection = DOMPropertyInjection;\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n if (domPropertyConfig.isCustomAttribute) {\n DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n }\n\n for (var propName in Properties) {\n !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== '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;\n\n var lowerCased = propName.toLowerCase();\n var propConfig = Properties[propName];\n\n var propertyInfo = {\n attributeName: lowerCased,\n attributeNamespace: null,\n propertyName: propName,\n mutationMethod: null,\n\n mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n };\n !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== '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;\n\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[attributeName] = propName;\n }\n }\n\n if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n }\n\n if (DOMPropertyNames.hasOwnProperty(propName)) {\n propertyInfo.propertyName = DOMPropertyNames[propName];\n }\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n propertyInfo.mutationMethod = DOMMutationMethods[propName];\n }\n\n DOMProperty.properties[propName] = propertyInfo;\n }\n }\n};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n * > DOMProperty.isValid['id']\n * true\n * > DOMProperty.isValid['foobar']\n * undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n ID_ATTRIBUTE_NAME: 'data-reactid',\n ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n\n /**\n * Map from property \"standard name\" to an object with info about how to set\n * the property in the DOM. Each object contains:\n *\n * attributeName:\n * Used when rendering markup or with `*Attribute()`.\n * attributeNamespace\n * propertyName:\n * Used on DOM node instances. (This includes properties that mutate due to\n * external factors.)\n * mutationMethod:\n * If non-null, used instead of the property or `setAttribute()` after\n * initial render.\n * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\n * hasBooleanValue:\n * Whether the property should be removed when set to a falsey value.\n * hasNumericValue:\n * Whether the property must be numeric or parse as a numeric and should be\n * removed when set to a falsey value.\n * hasPositiveNumericValue:\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * hasOverloadedBooleanValue:\n * Whether the property can be used as a flag as well as with a value.\n * Removed when strictly equal to false; present without a value when\n * strictly equal to true; present with a value otherwise.\n */\n properties: {},\n\n /**\n * Mapping from lowercase property names to the properly cased version, used\n * to warn in the case of missing properties. Available only in __DEV__.\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? {} : null,\n\n /**\n * All of the isCustomAttribute() functions that have been injected.\n */\n _isCustomAttributeFunctions: [],\n\n /**\n * Checks whether a property name is a custom attribute.\n * @method\n */\n isCustomAttribute: function (attributeName) {\n for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n if (isCustomAttributeFn(attributeName)) {\n return true;\n }\n }\n return false;\n },\n\n injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMProperty.js\n ** module id = 40\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponentFlags\n */\n\n'use strict';\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMComponentFlags.js\n ** module id = 41\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMEmptyComponent = require('./ReactDOMEmptyComponent');\nvar ReactDOMTreeTraversal = require('./ReactDOMTreeTraversal');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n if (alreadyInjected) {\n // TODO: This is currently true because these injections are shared between\n // the client and the server package. They should be built independently\n // and not share any injection state. Then this problem will be solved.\n return;\n }\n alreadyInjected = true;\n\n ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n /**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\n\n /**\n * Some important event plugins included by default (without having to require\n * them).\n */\n ReactInjection.EventPluginHub.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n });\n\n ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDefaultInjection.js\n ** module id = 42\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onBeforeInput: null }),\n captured: keyOf({ onBeforeInputCapture: null })\n },\n dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionEnd: null }),\n captured: keyOf({ onCompositionEndCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionStart: null }),\n captured: keyOf({ onCompositionStartCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionUpdate: null }),\n captured: keyOf({ onCompositionUpdateCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionStart:\n return eventTypes.compositionStart;\n case topLevelTypes.topCompositionEnd:\n return eventTypes.compositionEnd;\n case topLevelTypes.topCompositionUpdate:\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topKeyUp:\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case topLevelTypes.topKeyDown:\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n case topLevelTypes.topKeyPress:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topBlur:\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionEnd:\n return getDataFromCustomEvent(nativeEvent);\n case topLevelTypes.topKeyPress:\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case topLevelTypes.topTextInput:\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n if (currentComposition) {\n if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n var chars = currentComposition.getData();\n FallbackCompositionState.release(currentComposition);\n currentComposition = null;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case topLevelTypes.topPaste:\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case topLevelTypes.topKeyPress:\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case topLevelTypes.topCompositionEnd:\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n event.data = chars;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/BeforeInputEventPlugin.js\n ** module id = 43\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n topAbort: null,\n topAnimationEnd: null,\n topAnimationIteration: null,\n topAnimationStart: null,\n topBlur: null,\n topCanPlay: null,\n topCanPlayThrough: null,\n topChange: null,\n topClick: null,\n topCompositionEnd: null,\n topCompositionStart: null,\n topCompositionUpdate: null,\n topContextMenu: null,\n topCopy: null,\n topCut: null,\n topDoubleClick: null,\n topDrag: null,\n topDragEnd: null,\n topDragEnter: null,\n topDragExit: null,\n topDragLeave: null,\n topDragOver: null,\n topDragStart: null,\n topDrop: null,\n topDurationChange: null,\n topEmptied: null,\n topEncrypted: null,\n topEnded: null,\n topError: null,\n topFocus: null,\n topInput: null,\n topInvalid: null,\n topKeyDown: null,\n topKeyPress: null,\n topKeyUp: null,\n topLoad: null,\n topLoadedData: null,\n topLoadedMetadata: null,\n topLoadStart: null,\n topMouseDown: null,\n topMouseMove: null,\n topMouseOut: null,\n topMouseOver: null,\n topMouseUp: null,\n topPaste: null,\n topPause: null,\n topPlay: null,\n topPlaying: null,\n topProgress: null,\n topRateChange: null,\n topReset: null,\n topScroll: null,\n topSeeked: null,\n topSeeking: null,\n topSelectionChange: null,\n topStalled: null,\n topSubmit: null,\n topSuspend: null,\n topTextInput: null,\n topTimeUpdate: null,\n topTouchCancel: null,\n topTouchEnd: null,\n topTouchMove: null,\n topTouchStart: null,\n topTransitionEnd: null,\n topVolumeChange: null,\n topWaiting: null,\n topWheel: null\n});\n\nvar EventConstants = {\n topLevelTypes: topLevelTypes,\n PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventConstants.js\n ** module id = 44\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar warning = require('fbjs/lib/warning');\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, upwards, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPropagators.js\n ** module id = 45\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n return '.' + inst._rootNodeID;\n};\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n },\n\n /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n var bankForRegistrationName = listenerBank[registrationName];\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function (events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function (simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== '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;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function () {\n listenerBank = {};\n },\n\n __getListenerBank: function () {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPluginHub.js\n ** module id = 46\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!EventPluginOrder) {\n // Wait until an `EventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var PluginModule = namesToPlugins[pluginName];\n var pluginIndex = EventPluginOrder.indexOf(pluginName);\n !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !PluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n var publishedEvents = PluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\n EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n\n if (process.env.NODE_ENV !== 'production') {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n /**\n * Ordered list of injected plugins.\n */\n plugins: [],\n\n /**\n * Mapping from event name to dispatch config\n */\n eventNameDispatchConfigs: {},\n\n /**\n * Mapping from registration name to plugin module\n */\n registrationNameModules: {},\n\n /**\n * Mapping from registration name to event name\n */\n registrationNameDependencies: {},\n\n /**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,\n\n /**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n injectEventPluginOrder: function (InjectedEventPluginOrder) {\n !!EventPluginOrder ? process.env.NODE_ENV !== '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;\n // Clone the ordering so it cannot be dynamically mutated.\n EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n recomputePluginOrdering();\n },\n\n /**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n injectEventPluginsByName: function (injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var PluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\n namesToPlugins[pluginName] = PluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n },\n\n /**\n * Looks up the plugin for the supplied event.\n *\n * @param {object} event A synthetic event.\n * @return {?object} The plugin that created the supplied event.\n * @internal\n */\n getPluginModuleForEvent: function (event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n for (var phase in dispatchConfig.phasedRegistrationNames) {\n if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n if (PluginModule) {\n return PluginModule;\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function () {\n EventPluginOrder = null;\n for (var pluginName in namesToPlugins) {\n if (namesToPlugins.hasOwnProperty(pluginName)) {\n delete namesToPlugins[pluginName];\n }\n }\n EventPluginRegistry.plugins.length = 0;\n\n var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n for (var eventName in eventNameDispatchConfigs) {\n if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n delete eventNameDispatchConfigs[eventName];\n }\n }\n\n var registrationNameModules = EventPluginRegistry.registrationNameModules;\n for (var registrationName in registrationNameModules) {\n if (registrationNameModules.hasOwnProperty(registrationName)) {\n delete registrationNameModules[registrationName];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPluginRegistry.js\n ** module id = 47\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventConstants = require('./EventConstants');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPluginUtils.js\n ** module id = 48\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n try {\n return func(a, b);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n return undefined;\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n var boundFunc = func.bind(null, a, b);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactErrorUtils.js\n ** module id = 49\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\nmodule.exports = accumulateInto;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/accumulateInto.js\n ** module id = 50\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n * \n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\n\nfunction forEachAccumulated(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n}\n\nmodule.exports = forEachAccumulated;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/forEachAccumulated.js\n ** module id = 51\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/ExecutionEnvironment.js\n ** module id = 52\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n this._root = root;\n this._startText = this.getText();\n this._fallbackText = null;\n}\n\n_assign(FallbackCompositionState.prototype, {\n destructor: function () {\n this._root = null;\n this._startText = null;\n this._fallbackText = null;\n },\n\n /**\n * Get current text of input.\n *\n * @return {string}\n */\n getText: function () {\n if ('value' in this._root) {\n return this._root.value;\n }\n return this._root[getTextContentAccessor()];\n },\n\n /**\n * Determine the differing substring between the initially stored\n * text content and the current content.\n *\n * @return {string}\n */\n getData: function () {\n if (this._fallbackText) {\n return this._fallbackText;\n }\n\n var start;\n var startValue = this._startText;\n var startLength = startValue.length;\n var end;\n var endValue = this.getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n this._fallbackText = endValue.slice(start, sliceTail);\n return this._fallbackText;\n }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/FallbackCompositionState.js\n ** module id = 53\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n }\n return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getTextContentAccessor.js\n ** module id = 54\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticCompositionEvent.js\n ** module id = 55\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: null,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (process.env.NODE_ENV !== 'production') {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else {\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else {\n event.cancelBubble = true;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {\n this.isPersistent = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function () {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (process.env.NODE_ENV !== 'production') {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== '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;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\n}\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n var Super = this;\n\n var E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\n _assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = _assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n\n PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n process.env.NODE_ENV !== '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;\n }\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticEvent.js\n ** module id = 56\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticInputEvent.js\n ** module id = 57\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onChange: null }),\n captured: keyOf({ onChangeCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n EventPropagators.accumulateTwoPhaseDispatches(event);\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topChange) {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === topLevelTypes.topFocus) {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(target, targetInst);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function () {\n return activeElementValueProp.get.call(this);\n },\n set: function (val) {\n // Cast to a string so we can do equality checks.\n activeElementValue = '' + val;\n activeElementValueProp.set.call(this, val);\n }\n};\n\n/**\n * (For IE <=11) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n // delete restores the original property definition\n delete activeElement.value;\n\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n var value = nativeEvent.srcElement.value;\n if (value === activeElementValue) {\n return;\n }\n activeElementValue = value;\n\n manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topInput) {\n // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n // what we want so fall through here and trigger an abstract event\n return targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === topLevelTypes.topFocus) {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9-11, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n if (activeElement && activeElement.value !== activeElementValue) {\n activeElementValue = activeElement.value;\n return activeElementInst;\n }\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topClick) {\n return targetInst;\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ChangeEventPlugin.js\n ** module id = 58\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n initialize: function () {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function () {\n if (this.dirtyComponentsLength !== dirtyComponents.length) {\n // Additional updates were enqueued by componentDidUpdate handlers or\n // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n // these new updates so that if A's componentDidUpdate calls setState on\n // B, B will update before the callback A's updater provided when calling\n // setState.\n dirtyComponents.splice(0, this.dirtyComponentsLength);\n flushBatchedUpdates();\n } else {\n dirtyComponents.length = 0;\n }\n }\n};\n\nvar UPDATE_QUEUEING = {\n initialize: function () {\n this.callbackQueue.reset();\n },\n close: function () {\n this.callbackQueue.notifyAll();\n }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n this.reinitializeTransaction();\n this.dirtyComponentsLength = null;\n this.callbackQueue = CallbackQueue.getPooled();\n this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function () {\n this.dirtyComponentsLength = null;\n CallbackQueue.release(this.callbackQueue);\n this.callbackQueue = null;\n ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n this.reconcileTransaction = null;\n },\n\n perform: function (method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n ensureInjected();\n batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n var len = transaction.dirtyComponentsLength;\n !(len === dirtyComponents.length) ? process.env.NODE_ENV !== '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;\n\n // Since reconciling a component higher in the owner hierarchy usually (not\n // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n // them before their children by sorting the array.\n dirtyComponents.sort(mountOrderComparator);\n\n // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\n\n for (var i = 0; i < len; i++) {\n // If a component is unmounted before pending changes apply, it will still\n // be here, but we assume that it has cleared its _pendingCallbacks and\n // that performUpdateIfNecessary is a noop.\n var component = dirtyComponents[i];\n\n // If performUpdateIfNecessary happens to enqueue any new updates, we\n // shouldn't execute the callbacks until the next render happens, so\n // stash the callbacks first\n var callbacks = component._pendingCallbacks;\n component._pendingCallbacks = null;\n\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.props === component._renderedComponent._currentElement) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n if (callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n }\n }\n }\n}\n\nvar flushBatchedUpdates = function () {\n // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n // array and perform any updates enqueued by mount-ready handlers (i.e.,\n // componentDidUpdate) but we need to check here too in order to catch\n // updates enqueued by setState callbacks and asap calls.\n while (dirtyComponents.length || asapEnqueued) {\n if (dirtyComponents.length) {\n var transaction = ReactUpdatesFlushTransaction.getPooled();\n transaction.perform(runBatchedUpdates, null, transaction);\n ReactUpdatesFlushTransaction.release(transaction);\n }\n\n if (asapEnqueued) {\n asapEnqueued = false;\n var queue = asapCallbackQueue;\n asapCallbackQueue = CallbackQueue.getPooled();\n queue.notifyAll();\n CallbackQueue.release(queue);\n }\n }\n};\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n ensureInjected();\n\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (This is called by each top-level update\n // function, like setState, forceUpdate, etc.; creation and\n // destruction of top-level components is guarded in ReactMount.)\n\n if (!batchingStrategy.isBatchingUpdates) {\n batchingStrategy.batchedUpdates(enqueueUpdate, component);\n return;\n }\n\n dirtyComponents.push(component);\n if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function (ReconcileTransaction) {\n !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function (_batchingStrategy) {\n !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\n batchingStrategy = _batchingStrategy;\n }\n};\n\nvar ReactUpdates = {\n /**\n * React references `ReactReconcileTransaction` using this property in order\n * to allow dependency injection.\n *\n * @internal\n */\n ReactReconcileTransaction: null,\n\n batchedUpdates: batchedUpdates,\n enqueueUpdate: enqueueUpdate,\n flushBatchedUpdates: flushBatchedUpdates,\n injection: ReactUpdatesInjection,\n asap: asap\n};\n\nmodule.exports = ReactUpdates;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactUpdates.js\n ** module id = 59\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n this._callbacks = null;\n this._contexts = null;\n}\n\n_assign(CallbackQueue.prototype, {\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n enqueue: function (callback, context) {\n this._callbacks = this._callbacks || [];\n this._contexts = this._contexts || [];\n this._callbacks.push(callback);\n this._contexts.push(context);\n },\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n notifyAll: function () {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n if (callbacks) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i]);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n },\n\n checkpoint: function () {\n return this._callbacks ? this._callbacks.length : 0;\n },\n\n rollback: function (len) {\n if (this._callbacks) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n },\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n reset: function () {\n this._callbacks = null;\n this._contexts = null;\n },\n\n /**\n * `PooledClass` looks for this.\n */\n destructor: function () {\n this.reset();\n }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CallbackQueue.js\n ** module id = 60\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactFeatureFlags\n * \n */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactFeatureFlags.js\n ** module id = 61\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement);\n ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'mountComponent');\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'mountComponent');\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function (internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (internalInstance, safely) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'unmountComponent');\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'unmountComponent');\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Update a component using a new element.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @internal\n */\n receiveComponent: function (internalInstance, nextElement, transaction, context) {\n var prevElement = internalInstance._currentElement;\n\n if (nextElement === prevElement && context === internalInstance._context) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for an element created outside a composite to be\n // deeply mutated and reused.\n\n // TODO: Bailing out early is just a perf optimization right?\n // TODO: Removing the return statement should affect correctness?\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'receiveComponent');\n }\n }\n\n var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n if (refsChanged) {\n ReactRef.detachRefs(internalInstance, prevElement);\n }\n\n internalInstance.receiveComponent(nextElement, transaction, context);\n\n if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'receiveComponent');\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Flush any dirty changes in a component.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary');\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary');\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactReconciler.js\n ** module id = 62\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(component.getPublicInstance());\n } else {\n // Legacy ref\n ReactOwner.addComponentAsRefTo(component, ref, owner);\n }\n}\n\nfunction detachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(null);\n } else {\n // Legacy ref\n ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n }\n}\n\nReactRef.attachRefs = function (instance, element) {\n if (element === null || element === false) {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n attachRef(ref, instance, element._owner);\n }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n // If either the owner or a `ref` has changed, make sure the newest owner\n // has stored a reference to `this`, and the previous owner (if different)\n // has forgotten the reference to `this`. We use the element instead\n // of the public this.props because the post processing cannot determine\n // a ref. The ref conceptually lives on the element.\n\n // TODO: Should this even be possible? The owner cannot change because\n // it's forbidden by shouldUpdateReactComponent. The ref can change\n // if you swap the keys of but not the refs. Reconsider where this check\n // is made. It probably belongs where the key checking and\n // instantiateReactComponent is done.\n\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n\n return(\n // This has a few false positives w/r/t empty components.\n prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextElement.ref === 'string' && nextElement._owner !== prevElement._owner\n );\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || element === false) {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n detachRef(ref, instance, element._owner);\n }\n};\n\nmodule.exports = ReactRef;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactRef.js\n ** module id = 63\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return (\n * <div onClick={this.handleClick}>\n * <CustomComponent ref=\"custom\" />\n * </div>\n * );\n * },\n * handleClick: function() {\n * this.refs.custom.handleClick();\n * },\n * componentDidMount: function() {\n * this.refs.custom.initialize();\n * }\n * });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n /**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\n isValidOwner: function (object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n },\n\n /**\n * Adds a component by ref to an owner component.\n *\n * @param {ReactComponent} component Component to reference.\n * @param {string} ref Name by which to refer to the component.\n * @param {ReactOwner} owner Component on which to record the ref.\n * @final\n * @internal\n */\n addComponentAsRefTo: function (component, ref, owner) {\n !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== '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;\n owner.attachRef(ref, component);\n },\n\n /**\n * Removes a component by ref from an owner component.\n *\n * @param {ReactComponent} component Component to dereference.\n * @param {string} ref Name of the ref to remove.\n * @param {ReactOwner} owner Component on which the ref is recorded.\n * @final\n * @internal\n */\n removeComponentAsRefFrom: function (component, ref, owner) {\n !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== '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;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactOwner.js\n ** module id = 64\n ** module chunks = 4\n **/","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstrumentation\n */\n\n'use strict';\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInstrumentation.js\n ** module id = 65\n ** module chunks = 4\n **/","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDebugTool\n */\n\n'use strict';\n\nvar ReactInvalidSetStateWarningDevTool = require('./ReactInvalidSetStateWarningDevTool');\nvar ReactHostOperationHistoryDevtool = require('./ReactHostOperationHistoryDevtool');\nvar ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\nvar ReactChildrenMutationWarningDevtool = require('./ReactChildrenMutationWarningDevtool');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar performanceNow = require('fbjs/lib/performanceNow');\nvar warning = require('fbjs/lib/warning');\n\nvar eventHandlers = [];\nvar handlerDoesThrowForEvent = {};\n\nfunction emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) {\n eventHandlers.forEach(function (handler) {\n try {\n if (handler[handlerFunctionName]) {\n handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5);\n }\n } catch (e) {\n process.env.NODE_ENV !== 'production' ? warning(handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e + '\\n' + e.stack) : void 0;\n handlerDoesThrowForEvent[handlerFunctionName] = true;\n }\n });\n}\n\nvar isProfiling = false;\nvar flushHistory = [];\nvar lifeCycleTimerStack = [];\nvar currentFlushNesting = 0;\nvar currentFlushMeasurements = null;\nvar currentFlushStartTime = null;\nvar currentTimerDebugID = null;\nvar currentTimerStartTime = null;\nvar currentTimerNestedFlushDuration = null;\nvar currentTimerType = null;\n\nvar lifeCycleTimerHasWarned = false;\n\nfunction clearHistory() {\n ReactComponentTreeDevtool.purgeUnmountedComponents();\n ReactHostOperationHistoryDevtool.clearHistory();\n}\n\nfunction getTreeSnapshot(registeredIDs) {\n return registeredIDs.reduce(function (tree, id) {\n var ownerID = ReactComponentTreeDevtool.getOwnerID(id);\n var parentID = ReactComponentTreeDevtool.getParentID(id);\n tree[id] = {\n displayName: ReactComponentTreeDevtool.getDisplayName(id),\n text: ReactComponentTreeDevtool.getText(id),\n updateCount: ReactComponentTreeDevtool.getUpdateCount(id),\n childIDs: ReactComponentTreeDevtool.getChildIDs(id),\n // Text nodes don't have owners but this is close enough.\n ownerID: ownerID || ReactComponentTreeDevtool.getOwnerID(parentID),\n parentID: parentID\n };\n return tree;\n }, {});\n}\n\nfunction resetMeasurements() {\n var previousStartTime = currentFlushStartTime;\n var previousMeasurements = currentFlushMeasurements || [];\n var previousOperations = ReactHostOperationHistoryDevtool.getHistory();\n\n if (currentFlushNesting === 0) {\n currentFlushStartTime = null;\n currentFlushMeasurements = null;\n clearHistory();\n return;\n }\n\n if (previousMeasurements.length || previousOperations.length) {\n var registeredIDs = ReactComponentTreeDevtool.getRegisteredIDs();\n flushHistory.push({\n duration: performanceNow() - previousStartTime,\n measurements: previousMeasurements || [],\n operations: previousOperations || [],\n treeSnapshot: getTreeSnapshot(registeredIDs)\n });\n }\n\n clearHistory();\n currentFlushStartTime = performanceNow();\n currentFlushMeasurements = [];\n}\n\nfunction checkDebugID(debugID) {\n process.env.NODE_ENV !== 'production' ? warning(debugID, 'ReactDebugTool: debugID may not be empty.') : void 0;\n}\n\nfunction beginLifeCycleTimer(debugID, timerType) {\n if (currentFlushNesting === 0) {\n return;\n }\n if (currentTimerType && !lifeCycleTimerHasWarned) {\n process.env.NODE_ENV !== '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;\n lifeCycleTimerHasWarned = true;\n }\n currentTimerStartTime = performanceNow();\n currentTimerNestedFlushDuration = 0;\n currentTimerDebugID = debugID;\n currentTimerType = timerType;\n}\n\nfunction endLifeCycleTimer(debugID, timerType) {\n if (currentFlushNesting === 0) {\n return;\n }\n if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {\n process.env.NODE_ENV !== '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;\n lifeCycleTimerHasWarned = true;\n }\n if (isProfiling) {\n currentFlushMeasurements.push({\n timerType: timerType,\n instanceID: debugID,\n duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration\n });\n }\n currentTimerStartTime = null;\n currentTimerNestedFlushDuration = null;\n currentTimerDebugID = null;\n currentTimerType = null;\n}\n\nfunction pauseCurrentLifeCycleTimer() {\n var currentTimer = {\n startTime: currentTimerStartTime,\n nestedFlushStartTime: performanceNow(),\n debugID: currentTimerDebugID,\n timerType: currentTimerType\n };\n lifeCycleTimerStack.push(currentTimer);\n currentTimerStartTime = null;\n currentTimerNestedFlushDuration = null;\n currentTimerDebugID = null;\n currentTimerType = null;\n}\n\nfunction resumeCurrentLifeCycleTimer() {\n var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop();\n\n var startTime = _lifeCycleTimerStack$.startTime;\n var nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime;\n var debugID = _lifeCycleTimerStack$.debugID;\n var timerType = _lifeCycleTimerStack$.timerType;\n\n var nestedFlushDuration = performanceNow() - nestedFlushStartTime;\n currentTimerStartTime = startTime;\n currentTimerNestedFlushDuration += nestedFlushDuration;\n currentTimerDebugID = debugID;\n currentTimerType = timerType;\n}\n\nvar ReactDebugTool = {\n addDevtool: function (devtool) {\n eventHandlers.push(devtool);\n },\n removeDevtool: function (devtool) {\n for (var i = 0; i < eventHandlers.length; i++) {\n if (eventHandlers[i] === devtool) {\n eventHandlers.splice(i, 1);\n i--;\n }\n }\n },\n isProfiling: function () {\n return isProfiling;\n },\n beginProfiling: function () {\n if (isProfiling) {\n return;\n }\n\n isProfiling = true;\n flushHistory.length = 0;\n resetMeasurements();\n ReactDebugTool.addDevtool(ReactHostOperationHistoryDevtool);\n },\n endProfiling: function () {\n if (!isProfiling) {\n return;\n }\n\n isProfiling = false;\n resetMeasurements();\n ReactDebugTool.removeDevtool(ReactHostOperationHistoryDevtool);\n },\n getFlushHistory: function () {\n return flushHistory;\n },\n onBeginFlush: function () {\n currentFlushNesting++;\n resetMeasurements();\n pauseCurrentLifeCycleTimer();\n emitEvent('onBeginFlush');\n },\n onEndFlush: function () {\n resetMeasurements();\n currentFlushNesting--;\n resumeCurrentLifeCycleTimer();\n emitEvent('onEndFlush');\n },\n onBeginLifeCycleTimer: function (debugID, timerType) {\n checkDebugID(debugID);\n emitEvent('onBeginLifeCycleTimer', debugID, timerType);\n beginLifeCycleTimer(debugID, timerType);\n },\n onEndLifeCycleTimer: function (debugID, timerType) {\n checkDebugID(debugID);\n endLifeCycleTimer(debugID, timerType);\n emitEvent('onEndLifeCycleTimer', debugID, timerType);\n },\n onBeginReconcilerTimer: function (debugID, timerType) {\n checkDebugID(debugID);\n emitEvent('onBeginReconcilerTimer', debugID, timerType);\n },\n onEndReconcilerTimer: function (debugID, timerType) {\n checkDebugID(debugID);\n emitEvent('onEndReconcilerTimer', debugID, timerType);\n },\n onError: function (debugID) {\n if (currentTimerDebugID != null) {\n endLifeCycleTimer(currentTimerDebugID, currentTimerType);\n }\n emitEvent('onError', debugID);\n },\n onBeginProcessingChildContext: function () {\n emitEvent('onBeginProcessingChildContext');\n },\n onEndProcessingChildContext: function () {\n emitEvent('onEndProcessingChildContext');\n },\n onHostOperation: function (debugID, type, payload) {\n checkDebugID(debugID);\n emitEvent('onHostOperation', debugID, type, payload);\n },\n onComponentHasMounted: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onComponentHasMounted', debugID);\n },\n onComponentHasUpdated: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onComponentHasUpdated', debugID);\n },\n onSetState: function () {\n emitEvent('onSetState');\n },\n onSetDisplayName: function (debugID, displayName) {\n checkDebugID(debugID);\n emitEvent('onSetDisplayName', debugID, displayName);\n },\n onSetChildren: function (debugID, childDebugIDs) {\n checkDebugID(debugID);\n childDebugIDs.forEach(checkDebugID);\n emitEvent('onSetChildren', debugID, childDebugIDs);\n },\n onSetOwner: function (debugID, ownerDebugID) {\n checkDebugID(debugID);\n emitEvent('onSetOwner', debugID, ownerDebugID);\n },\n onSetParent: function (debugID, parentDebugID) {\n checkDebugID(debugID);\n emitEvent('onSetParent', debugID, parentDebugID);\n },\n onSetText: function (debugID, text) {\n checkDebugID(debugID);\n emitEvent('onSetText', debugID, text);\n },\n onMountRootComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onMountRootComponent', debugID);\n },\n onBeforeMountComponent: function (debugID, element) {\n checkDebugID(debugID);\n emitEvent('onBeforeMountComponent', debugID, element);\n },\n onMountComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onMountComponent', debugID);\n },\n onBeforeUpdateComponent: function (debugID, element) {\n checkDebugID(debugID);\n emitEvent('onBeforeUpdateComponent', debugID, element);\n },\n onUpdateComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onUpdateComponent', debugID);\n },\n onUnmountComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onUnmountComponent', debugID);\n },\n onTestEvent: function () {\n emitEvent('onTestEvent');\n }\n};\n\nReactDebugTool.addDevtool(ReactInvalidSetStateWarningDevTool);\nReactDebugTool.addDevtool(ReactComponentTreeDevtool);\nReactDebugTool.addDevtool(ReactChildrenMutationWarningDevtool);\nvar url = ExecutionEnvironment.canUseDOM && window.location.href || '';\nif (/[?&]react_perf\\b/.test(url)) {\n ReactDebugTool.beginProfiling();\n}\n\nmodule.exports = ReactDebugTool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDebugTool.js\n ** module id = 66\n ** module chunks = 4\n **/","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInvalidSetStateWarningDevTool\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nif (process.env.NODE_ENV !== 'production') {\n var processingChildContext = false;\n\n var warnInvalidSetState = function () {\n process.env.NODE_ENV !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0;\n };\n}\n\nvar ReactInvalidSetStateWarningDevTool = {\n onBeginProcessingChildContext: function () {\n processingChildContext = true;\n },\n onEndProcessingChildContext: function () {\n processingChildContext = false;\n },\n onSetState: function () {\n warnInvalidSetState();\n }\n};\n\nmodule.exports = ReactInvalidSetStateWarningDevTool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInvalidSetStateWarningDevTool.js\n ** module id = 67\n ** module chunks = 4\n **/","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactHostOperationHistoryDevtool\n */\n\n'use strict';\n\nvar history = [];\n\nvar ReactHostOperationHistoryDevtool = {\n onHostOperation: function (debugID, type, payload) {\n history.push({\n instanceID: debugID,\n type: type,\n payload: payload\n });\n },\n clearHistory: function () {\n if (ReactHostOperationHistoryDevtool._preventClearing) {\n // Should only be used for tests.\n return;\n }\n\n history = [];\n },\n getHistory: function () {\n return history;\n }\n};\n\nmodule.exports = ReactHostOperationHistoryDevtool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactHostOperationHistoryDevtool.js\n ** module id = 68\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildrenMutationWarningDevtool\n */\n\n'use strict';\n\nvar ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n\nvar warning = require('fbjs/lib/warning');\n\nvar elements = {};\n\nfunction handleElement(debugID, element) {\n if (element == null) {\n return;\n }\n if (element._shadowChildren === undefined) {\n return;\n }\n if (element._shadowChildren === element.props.children) {\n return;\n }\n var isMutated = false;\n if (Array.isArray(element._shadowChildren)) {\n if (element._shadowChildren.length === element.props.children.length) {\n for (var i = 0; i < element._shadowChildren.length; i++) {\n if (element._shadowChildren[i] !== element.props.children[i]) {\n isMutated = true;\n }\n }\n } else {\n isMutated = true;\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(Array.isArray(element._shadowChildren) && !isMutated, 'Component\\'s children should not be mutated.%s', ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;\n}\n\nvar ReactDOMUnknownPropertyDevtool = {\n onBeforeMountComponent: function (debugID, element) {\n elements[debugID] = element;\n },\n onBeforeUpdateComponent: function (debugID, element) {\n elements[debugID] = element;\n },\n onComponentHasMounted: function (debugID) {\n handleElement(debugID, elements[debugID]);\n delete elements[debugID];\n },\n onComponentHasUpdated: function (debugID) {\n handleElement(debugID, elements[debugID]);\n delete elements[debugID];\n }\n};\n\nmodule.exports = ReactDOMUnknownPropertyDevtool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactChildrenMutationWarningDevtool.js\n ** module id = 69\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar performance = require('./performance');\n\nvar performanceNow;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (performance.now) {\n performanceNow = function performanceNow() {\n return performance.now();\n };\n} else {\n performanceNow = function performanceNow() {\n return Date.now();\n };\n}\n\nmodule.exports = performanceNow;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/performanceNow.js\n ** module id = 70\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/performance.js\n ** module id = 71\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n * wrappers (injected at creation time)\n * + +\n * | |\n * +-----------------|--------|--------------+\n * | v | |\n * | +---------------+ | |\n * | +--| wrapper1 |---|----+ |\n * | | +---------------+ v | |\n * | | +-------------+ | |\n * | | +----| wrapper2 |--------+ |\n * | | | +-------------+ | | |\n * | | | | | |\n * | v v v v | wrapper\n * | +---+ +---+ +---------+ +---+ +---+ | invariants\n * perform(anyMethod) | | | | | | | | | | | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | +---+ +---+ +---------+ +---+ +---+ |\n * | initialize close |\n * +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n * Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n * while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n * reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n * content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n * to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n * when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n /**\n * Sets up this instance so that it is prepared for collecting metrics. Does\n * so such that this setup method may be used on an instance that is already\n * initialized, in a way that does not consume additional memory upon reuse.\n * That can be useful if you decide to make your subclass of this mixin a\n * \"PooledClass\".\n */\n reinitializeTransaction: function () {\n this.transactionWrappers = this.getTransactionWrappers();\n if (this.wrapperInitData) {\n this.wrapperInitData.length = 0;\n } else {\n this.wrapperInitData = [];\n }\n this._isInTransaction = false;\n },\n\n _isInTransaction: false,\n\n /**\n * @abstract\n * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function () {\n return !!this._isInTransaction;\n },\n\n /**\n * Executes the function within a safety window. Use this for the top level\n * methods that result in large amounts of computation/mutations that would\n * need to be safety checked. The optional arguments helps prevent the need\n * to bind in many cases.\n *\n * @param {function} method Member of scope to call.\n * @param {Object} scope Scope to invoke from.\n * @param {Object?=} a Argument to pass to the method.\n * @param {Object?=} b Argument to pass to the method.\n * @param {Object?=} c Argument to pass to the method.\n * @param {Object?=} d Argument to pass to the method.\n * @param {Object?=} e Argument to pass to the method.\n * @param {Object?=} f Argument to pass to the method.\n *\n * @return {*} Return value from `method`.\n */\n perform: function (method, scope, a, b, c, d, e, f) {\n !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\n var errorThrown;\n var ret;\n try {\n this._isInTransaction = true;\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // one of these calls threw.\n errorThrown = true;\n this.initializeAll(0);\n ret = method.call(scope, a, b, c, d, e, f);\n errorThrown = false;\n } finally {\n try {\n if (errorThrown) {\n // If `method` throws, prefer to show that stack trace over any thrown\n // by invoking `closeAll`.\n try {\n this.closeAll(0);\n } catch (err) {}\n } else {\n // Since `method` didn't throw, we don't want to silence the exception\n // here.\n this.closeAll(0);\n }\n } finally {\n this._isInTransaction = false;\n }\n }\n return ret;\n },\n\n initializeAll: function (startIndex) {\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n try {\n // Catching errors makes debugging more difficult, so we start with the\n // OBSERVED_ERROR state before overwriting it with the real return value\n // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n // block, it means wrapper.initialize threw.\n this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n // The initializer for wrapper i threw an error; initialize the\n // remaining wrappers but silence any exceptions from them to ensure\n // that the first error is the one to bubble up.\n try {\n this.initializeAll(i + 1);\n } catch (err) {}\n }\n }\n }\n },\n\n /**\n * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n * them the respective return values of `this.transactionWrappers.init[i]`\n * (`close`rs that correspond to initializers that failed will not be\n * invoked).\n */\n closeAll: function (startIndex) {\n !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n var initData = this.wrapperInitData[i];\n var errorThrown;\n try {\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // wrapper.close threw.\n errorThrown = true;\n if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n wrapper.close.call(this, initData);\n }\n errorThrown = false;\n } finally {\n if (errorThrown) {\n // The closer for wrapper i threw an error; close the remaining\n // wrappers but silence any exceptions from them to ensure that the\n // first error is the one to bubble up.\n try {\n this.closeAll(i + 1);\n } catch (e) {}\n }\n }\n }\n this.wrapperInitData.length = 0;\n }\n};\n\nvar Transaction = {\n\n Mixin: Mixin,\n\n /**\n * Token to look for to determine if an error occurred.\n */\n OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/Transaction.js\n ** module id = 72\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG <use> element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventTarget.js\n ** module id = 73\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/isEventSupported.js\n ** module id = 74\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n * \n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\n\nvar supportedInputTypes = {\n 'color': true,\n 'date': true,\n 'datetime': true,\n 'datetime-local': true,\n 'email': true,\n 'month': true,\n 'number': true,\n 'password': true,\n 'range': true,\n 'search': true,\n 'tel': true,\n 'text': true,\n 'time': true,\n 'url': true,\n 'week': true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/isTextInputElement.js\n ** module id = 75\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = require('fbjs/lib/keyOf');\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DefaultEventPluginOrder.js\n ** module id = 76\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: keyOf({ onMouseEnter: null }),\n dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n },\n mouseLeave: {\n registrationName: keyOf({ onMouseLeave: null }),\n dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n }\n};\n\nvar EnterLeaveEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n if (topLevelType === topLevelTypes.topMouseOut) {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EnterLeaveEventPlugin.js\n ** module id = 77\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function (event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function (event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function (event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticMouseEvent.js\n ** module id = 78\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function (event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function (event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticUIEvent.js\n ** module id = 79\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function (scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ViewportMetrics.js\n ** module id = 80\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Meta': 'metaKey',\n 'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventModifierState.js\n ** module id = 81\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {}\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/HTMLDOMPropertyConfig.js\n ** module id = 82\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup,\n\n /**\n * If a particular environment requires that some resources be cleaned up,\n * specify this in the injected Mixin. In the DOM, we would likely want to\n * purge any cached node ID lookups.\n *\n * @private\n */\n unmountIDFromEnvironment: function (rootNodeID) {}\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactComponentBrowserEnvironment.js\n ** module id = 83\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n */\n\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, 'replace text', stringText);\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation(prevInstance._debugID, 'replace with', markup.toString());\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation(nextInstance._debugID, 'mount', markup.toString());\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'insert child', { toIndex: update.toIndex, content: update.content.toString() });\n }\n break;\n case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'move child', { fromIndex: update.fromIndex, toIndex: update.toIndex });\n }\n break;\n case ReactMultiChildUpdateTypes.SET_MARKUP:\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace children', update.content.toString());\n }\n break;\n case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace text', update.content.toString());\n }\n break;\n case ReactMultiChildUpdateTypes.REMOVE_NODE:\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'remove child', { fromIndex: update.fromIndex });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMChildrenOperations.js\n ** module id = 84\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMLazyTree\n */\n\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some <object> plugins (like Flash Player) will read\n // <param> nodes immediately upon insertion into the DOM, so <object>\n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMLazyTree.js\n ** module id = 85\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMNamespaces\n */\n\n'use strict';\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMNamespaces.js\n ** module id = 86\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar DOMNamespaces = require('./DOMNamespaces');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n var newNodes = reusableSVGContainer.firstChild.childNodes;\n for (var i = 0; i < newNodes.length; i++) {\n node.appendChild(newNodes[i]);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function (node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/setInnerHTML.js\n ** module id = 87\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createMicrosoftUnsafeLocalFunction\n */\n\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/createMicrosoftUnsafeLocalFunction.js\n ** module id = 88\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/setTextContent.js\n ** module id = 89\n ** module chunks = 4\n **/","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/escapeTextContentForBrowser.js\n ** module id = 90\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Danger = {\n\n /**\n * Replaces a node with a string of markup at its current position within its\n * parent. The markup must render into a single root node.\n *\n * @param {DOMElement} oldChild Child node to replace.\n * @param {string} markup Markup to render in place of the child node.\n * @internal\n */\n dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== '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;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== 'HTML') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> 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;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/Danger.js\n ** module id = 91\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n var node = dummyNode;\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\n var nodeName = getNodeName(markup);\n\n var wrap = nodeName && getMarkupWrap(nodeName);\n if (wrap) {\n node.innerHTML = wrap[1] + markup + wrap[2];\n\n var wrapDepth = wrap[0];\n while (wrapDepth--) {\n node = node.lastChild;\n }\n } else {\n node.innerHTML = markup;\n }\n\n var scripts = node.getElementsByTagName('script');\n if (scripts.length) {\n !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/createNodesFromMarkup.js\n ** module id = 92\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return(\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/createArrayFromMixed.js\n ** module id = 93\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n '*': [1, '?<div>', '</div>'],\n\n 'area': [1, '<map>', '</map>'],\n 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n 'legend': [1, '<fieldset>', '</fieldset>'],\n 'param': [1, '<object>', '</object>'],\n 'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n 'optgroup': selectWrap,\n 'option': selectWrap,\n\n 'caption': tableWrap,\n 'colgroup': tableWrap,\n 'tbody': tableWrap,\n 'tfoot': tableWrap,\n 'thead': tableWrap,\n\n 'td': trWrap,\n 'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n markupWrap[nodeName] = svgWrap;\n shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\n if (!markupWrap.hasOwnProperty(nodeName)) {\n nodeName = '*';\n }\n if (!shouldWrap.hasOwnProperty(nodeName)) {\n if (nodeName === '*') {\n dummyNode.innerHTML = '<link />';\n } else {\n dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n }\n shouldWrap[nodeName] = !dummyNode.firstChild;\n }\n return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/getMarkupWrap.js\n ** module id = 94\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n INSERT_MARKUP: null,\n MOVE_EXISTING: null,\n REMOVE_NODE: null,\n SET_MARKUP: null,\n TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMultiChildUpdateTypes.js\n ** module id = 95\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMIDOperations.js\n ** module id = 96\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMNamespaces = require('./DOMNamespaces');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMButton = require('./ReactDOMButton');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar STYLE = keyOf({ style: null });\nvar HTML = keyOf({ __html: null });\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nfunction friendlyStringify(obj) {\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined because undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setContentChildForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setContentChildForInstrumentation = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n var contentDebugID = debugID + '#text';\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n this._contentDebugID = contentDebugID;\n var text = '' + content;\n\n ReactInstrumentation.debugTool.onSetDisplayName(contentDebugID, '#text');\n ReactInstrumentation.debugTool.onSetParent(contentDebugID, debugID);\n ReactInstrumentation.debugTool.onSetText(contentDebugID, text);\n\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n break;\n case 'video':\n case 'audio':\n\n inst._wrapperState.listeners = [];\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topInvalid, 'invalid', node)];\n break;\n }\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n 'area': true,\n 'base': true,\n 'br': true,\n 'col': true,\n 'embed': true,\n 'hr': true,\n 'img': true,\n 'input': true,\n 'keygen': true,\n 'link': true,\n 'meta': true,\n 'param': true,\n 'source': true,\n 'track': true,\n 'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n 'listing': true,\n 'pre': true,\n 'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n 'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = null;\n this._domID = null;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setContentChildForInstrumentation.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the containing DOM component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'button':\n props = ReactDOMButton.getHostProps(this, props, hostParent);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID) {\n var callback = function () {\n return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID);\n };\n transaction.getReactMountReady().enqueue(callback, this);\n }\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function (transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n if (process.env.NODE_ENV !== 'production') {\n setContentChildForInstrumentation.call(this, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function (transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n if (process.env.NODE_ENV !== 'production') {\n setContentChildForInstrumentation.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function (nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevElement, nextElement, context) {\n var _this2 = this;\n\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'button':\n lastProps = ReactDOMButton.getHostProps(this, lastProps);\n nextProps = ReactDOMButton.getHostProps(this, nextProps);\n break;\n case 'input':\n ReactDOMInput.updateWrapper(this);\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n if (this._tag === 'select') {\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID) {\n var callback = function () {\n return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID);\n };\n transaction.getReactMountReady().enqueue(callback, this);\n }\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = _assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setContentChildForInstrumentation.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setContentChildForInstrumentation.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n this._rootNodeID = null;\n this._domID = null;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setContentChildForInstrumentation.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMComponent.js\n ** module id = 97\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n */\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar AutoFocusUtils = {\n focusDOMComponent: function () {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/AutoFocusUtils.js\n ** module id = 98\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/focusNode.js\n ** module id = 99\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n var tempStyle = document.createElement('div').style;\n try {\n // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n tempStyle.font = '';\n } catch (e) {\n hasShorthandPropertyBug = true;\n }\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function (name, value, owner) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function (name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function (owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n };\n\n /**\n * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function (name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\n }\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function (styles, component) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styleValue, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n * @param {ReactDOMComponent} component\n */\n setValueForStyles: function (node, styles, component) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(component._debugID, 'update styles', styles);\n }\n\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styles[styleName], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\n styleName = styleFloatAccessor;\n }\n if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n\n};\n\nmodule.exports = CSSPropertyOperations;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CSSPropertyOperations.js\n ** module id = 100\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundAttachment: true,\n backgroundColor: true,\n backgroundImage: true,\n backgroundPositionX: true,\n backgroundPositionY: true,\n backgroundRepeat: true\n },\n backgroundPosition: {\n backgroundPositionX: true,\n backgroundPositionY: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n },\n outline: {\n outlineWidth: true,\n outlineStyle: true,\n outlineColor: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CSSProperty.js\n ** module id = 101\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/camelizeStyleName.js\n ** module id = 102\n ** module chunks = 4\n **/","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/camelize.js\n ** module id = 103\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar warning = require('fbjs/lib/warning');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/dangerousStyleValue.js\n ** module id = 104\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/hyphenateStyleName.js\n ** module id = 105\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/hyphenate.js\n ** module id = 106\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/memoizeStringOnly.js\n ** module id = 107\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInstrumentation = require('./ReactDOMInstrumentation');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n return true;\n }\n if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\n return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n /**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n createMarkupForID: function (id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function (node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n createMarkupForRoot: function () {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function (node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\n },\n\n /**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\n createMarkupForProperty: function (name, value) {\n if (process.env.NODE_ENV !== 'production') {\n ReactDOMInstrumentation.debugTool.onCreateMarkupForProperty(name, value);\n }\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n if (shouldIgnoreValue(propertyInfo, value)) {\n return '';\n }\n var attributeName = propertyInfo.attributeName;\n if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n return attributeName + '=\"\"';\n }\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n }\n return null;\n },\n\n /**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\n createMarkupForCustomAttribute: function (name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n },\n\n /**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n setValueForProperty: function (node, name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(propertyInfo, value)) {\n this.deleteValueForProperty(node, name);\n return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\n var attributeName = propertyInfo.attributeName;\n var namespace = propertyInfo.attributeNamespace;\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n if (namespace) {\n node.setAttributeNS(namespace, attributeName, '' + value);\n } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n node.setAttribute(attributeName, '');\n } else {\n node.setAttribute(attributeName, '' + value);\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactDOMInstrumentation.debugTool.onSetValueForProperty(node, name, value);\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);\n }\n },\n\n setValueForAttribute: function (node, name, value) {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function (node, name) {\n node.removeAttribute(name);\n if (process.env.NODE_ENV !== 'production') {\n ReactDOMInstrumentation.debugTool.onDeleteValueForProperty(node, name);\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);\n }\n },\n\n /**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForProperty: function (node, name) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (propertyInfo.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactDOMInstrumentation.debugTool.onDeleteValueForProperty(node, name);\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMPropertyOperations.js\n ** module id = 108\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInstrumentation\n */\n\n'use strict';\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDOMDebugTool = require('./ReactDOMDebugTool');\n debugTool = ReactDOMDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMInstrumentation.js\n ** module id = 109\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMDebugTool\n */\n\n'use strict';\n\nvar ReactDOMNullInputValuePropDevtool = require('./ReactDOMNullInputValuePropDevtool');\nvar ReactDOMUnknownPropertyDevtool = require('./ReactDOMUnknownPropertyDevtool');\nvar ReactDebugTool = require('./ReactDebugTool');\n\nvar warning = require('fbjs/lib/warning');\n\nvar eventHandlers = [];\nvar handlerDoesThrowForEvent = {};\n\nfunction emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) {\n eventHandlers.forEach(function (handler) {\n try {\n if (handler[handlerFunctionName]) {\n handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5);\n }\n } catch (e) {\n process.env.NODE_ENV !== 'production' ? warning(handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e + '\\n' + e.stack) : void 0;\n handlerDoesThrowForEvent[handlerFunctionName] = true;\n }\n });\n}\n\nvar ReactDOMDebugTool = {\n addDevtool: function (devtool) {\n ReactDebugTool.addDevtool(devtool);\n eventHandlers.push(devtool);\n },\n removeDevtool: function (devtool) {\n ReactDebugTool.removeDevtool(devtool);\n for (var i = 0; i < eventHandlers.length; i++) {\n if (eventHandlers[i] === devtool) {\n eventHandlers.splice(i, 1);\n i--;\n }\n }\n },\n onCreateMarkupForProperty: function (name, value) {\n emitEvent('onCreateMarkupForProperty', name, value);\n },\n onSetValueForProperty: function (node, name, value) {\n emitEvent('onSetValueForProperty', node, name, value);\n },\n onDeleteValueForProperty: function (node, name) {\n emitEvent('onDeleteValueForProperty', node, name);\n },\n onTestEvent: function () {\n emitEvent('onTestEvent');\n }\n};\n\nReactDOMDebugTool.addDevtool(ReactDOMUnknownPropertyDevtool);\nReactDOMDebugTool.addDevtool(ReactDOMNullInputValuePropDevtool);\n\nmodule.exports = ReactDOMDebugTool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMDebugTool.js\n ** module id = 110\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMNullInputValuePropDevtool\n */\n\n'use strict';\n\nvar ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueNull = false;\n\nfunction handleElement(debugID, element) {\n if (element == null) {\n return;\n }\n if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') {\n return;\n }\n if (element.props != null && element.props.value === null && !didWarnValueNull) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;\n\n didWarnValueNull = true;\n }\n}\n\nvar ReactDOMUnknownPropertyDevtool = {\n onBeforeMountComponent: function (debugID, element) {\n handleElement(debugID, element);\n },\n onBeforeUpdateComponent: function (debugID, element) {\n handleElement(debugID, element);\n }\n};\n\nmodule.exports = ReactDOMUnknownPropertyDevtool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMNullInputValuePropDevtool.js\n ** module id = 111\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMUnknownPropertyDevtool\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n\nvar warning = require('fbjs/lib/warning');\n\nif (process.env.NODE_ENV !== 'production') {\n var reactProps = {\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n\n autoFocus: true,\n defaultValue: true,\n valueLink: true,\n defaultChecked: true,\n checkedLink: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n onFocusIn: true,\n onFocusOut: true\n };\n var warnedProperties = {};\n\n var validateProperty = function (tagName, name, debugID) {\n if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) {\n return true;\n }\n if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n return true;\n }\n if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) {\n return true;\n }\n warnedProperties[name] = true;\n var lowerCasedName = name.toLowerCase();\n\n // data-* attributes should be lowercase; suggest the lowercase version\n var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null;\n\n if (standardName != null) {\n process.env.NODE_ENV !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;\n return true;\n } else if (registrationName != null) {\n process.env.NODE_ENV !== 'production' ? warning(registrationName == null, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;\n return true;\n } else {\n // We were unable to guess which prop the user intended.\n // It is likely that the user was just blindly spreading/forwarding props\n // Components should be careful to only render valid props/attributes.\n // Warning will be invoked in warnUnknownProperties to allow grouping.\n return false;\n }\n };\n}\n\nvar warnUnknownProperties = function (debugID, element) {\n var unknownProps = [];\n for (var key in element.props) {\n var isValid = validateProperty(element.type, key, debugID);\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (unknownProps.length === 1) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;\n } else if (unknownProps.length > 1) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeDevtool.getStackAddendumByID(debugID)) : void 0;\n }\n};\n\nfunction handleElement(debugID, element) {\n if (element == null || typeof element.type !== 'string') {\n return;\n }\n if (element.type.indexOf('-') >= 0 || element.props.is) {\n return;\n }\n warnUnknownProperties(debugID, element);\n}\n\nvar ReactDOMUnknownPropertyDevtool = {\n onBeforeMountComponent: function (debugID, element) {\n handleElement(debugID, element);\n },\n onBeforeUpdateComponent: function (debugID, element) {\n handleElement(debugID, element);\n }\n};\n\nmodule.exports = ReactDOMUnknownPropertyDevtool;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMUnknownPropertyDevtool.js\n ** module id = 112\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/quoteAttributeValueForBrowser.js\n ** module id = 113\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getVendorPrefixedEventName = require('./getVendorPrefixedEventName');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function (ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function (enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function () {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function (registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n var topLevelTypes = EventConstants.topLevelTypes;\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === topLevelTypes.topWheel) {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === topLevelTypes.topScroll) {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening[topLevelTypes.topBlur] = true;\n isListening[topLevelTypes.topFocus] = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function () {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = document.createEvent && 'pageX' in document.createEvent('MouseEvent');\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactBrowserEventEmitter.js\n ** module id = 114\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n EventPluginHub.enqueueEvents(events);\n EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n /**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n */\n handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactEventEmitterMixin.js\n ** module id = 115\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getVendorPrefixedEventName\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getVendorPrefixedEventName.js\n ** module id = 116\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\n\n/**\n * Implements a <button> host component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n getHostProps: DisabledInputUtils.getHostProps\n};\n\nmodule.exports = ReactDOMButton;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMButton.js\n ** module id = 117\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DisabledInputUtils\n */\n\n'use strict';\n\nvar disableableMouseListenerNames = {\n onClick: true,\n onDoubleClick: true,\n onMouseDown: true,\n onMouseMove: true,\n onMouseUp: true,\n\n onClickCapture: true,\n onDoubleClickCapture: true,\n onMouseDownCapture: true,\n onMouseMoveCapture: true,\n onMouseUpCapture: true\n};\n\n/**\n * Implements a host component that does not receive mouse events\n * when `disabled` is set.\n */\nvar DisabledInputUtils = {\n getHostProps: function (inst, props) {\n if (!props.disabled) {\n return props;\n }\n\n // Copy the props, except the mouse listeners\n var hostProps = {};\n for (var key in props) {\n if (!disableableMouseListenerNames[key] && props.hasOwnProperty(key)) {\n hostProps[key] = props[key];\n }\n }\n\n return hostProps;\n }\n};\n\nmodule.exports = DisabledInputUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DisabledInputUtils.js\n ** module id = 118\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked !== undefined : props.value !== undefined;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined\n }, DisabledInputUtils.getHostProps(inst, props), {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n\n if (process.env.NODE_ENV !== 'production') {\n inst._wrapperState.controlled = isControlled(props);\n }\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n node.defaultValue = '' + props.defaultValue;\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n if (props.type !== 'submit' && props.type !== 'reset') {\n node.value = node.value;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMInput.js\n ** module id = 119\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n 'button': true,\n 'checkbox': true,\n 'image': true,\n 'hidden': true,\n 'radio': true,\n 'reset': true,\n 'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function (tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop, null, ReactPropTypesSecret);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function (inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function (inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function (inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/LinkedValueUtils.js\n ** module id = 120\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar warning = require('fbjs/lib/warning');\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n ReactChildren.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function (inst, props, hostParent) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value is null (e.g., no specified value or after initial mount)\n // or missing (e.g., for <datalist>), we don't change props.selected\n var selected = null;\n if (selectValue != null) {\n var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function (inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function (inst, props) {\n var hostProps = _assign({ selected: undefined, children: undefined }, props);\n\n // Read state only from initial mount because <select> updates value\n // manually; we need the initial state only for server rendering\n if (inst._wrapperState.selected != null) {\n hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMOption.js\n ** module id = 121\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n if (props.multiple) {\n process.env.NODE_ENV !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n getHostProps: function (inst, props) {\n return _assign({}, DisabledInputUtils.getHostProps(inst, props), {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMSelect.js\n ** module id = 122\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, DisabledInputUtils.getHostProps(inst, props), {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Warning: node.value may be the empty string at this point (IE11) if placeholder is set.\n node.value = node.textContent; // Detach value from defaultValue\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMTextarea.js\n ** module id = 123\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar flattenChildren = require('./flattenChildren');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.SET_MARKUP,\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setParentForInstrumentation = emptyFunction;\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setParentForInstrumentation = function (child) {\n if (child._debugID !== 0) {\n ReactInstrumentation.debugTool.onSetParent(child._debugID, getDebugID(this));\n }\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n\n _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, this._debugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n if (process.env.NODE_ENV !== 'production') {\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, this._debugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context);\n return nextChildren;\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function (nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n if (process.env.NODE_ENV !== 'production') {\n setParentForInstrumentation.call(this, child);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\n }\n\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function (nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function (nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function (nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function (child, afterNode, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n return makeMove(child, afterNode, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function (child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function (child, node) {\n return makeRemove(child, node);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function (child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMultiChild.js\n ** module id = 124\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable environment dependent cleanup hook. (server vs.\n * browser etc). Example: A browser system caches DOM nodes based on component\n * ID and must remove that cache entry when this instance is unmounted.\n */\n unmountIDFromEnvironment: null,\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function (environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactComponentEnvironment.js\n ** module id = 125\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\n\nvar ReactInstanceMap = {\n\n /**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n remove: function (key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function (key) {\n return key._reactInternalInstance;\n },\n\n has: function (key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function (key, value) {\n key._reactInternalInstance = value;\n }\n\n};\n\nmodule.exports = ReactInstanceMap;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInstanceMap.js\n ** module id = 126\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeDevtool;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeDevtool) {\n ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n }\n process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeDevtool.getStackAddendumByID(selfDebugID)) : void 0;\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // __DEV__ only\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context) {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context);\n mountImages.push(nextChildMountImage);\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactChildReconciler.js\n ** module id = 127\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function (element) {\n this.construct(element);\n};\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nfunction getDisplayName(instance) {\n var element = instance._currentElement;\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else if (instance.getName) {\n return instance.getName() || 'Unknown';\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\nvar nextDebugID = 1;\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if (typeof node === 'object') {\n var element = node;\n !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : _prodInvariant('130', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : void 0;\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.createInternalComponent(element);\n } else if (isInternalComponentType(element.type)) {\n // This is temporarily available for custom components that are not string\n // representations. I.e. ART. Once those are updated to use the string\n // representation, we can drop this code path.\n instance = new element.type(element);\n\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\n\n // These two fields are used by the DOM and ART diffing algorithms\n // respectively. Instead of using expandos on components, we should be\n // storing the state needed by the diffing algorithms elsewhere.\n instance._mountIndex = 0;\n instance._mountImage = null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (shouldHaveDebugID) {\n var debugID = nextDebugID++;\n instance._debugID = debugID;\n var displayName = getDisplayName(instance);\n ReactInstrumentation.debugTool.onSetDisplayName(debugID, displayName);\n var owner = node && node._owner;\n if (owner) {\n ReactInstrumentation.debugTool.onSetOwner(debugID, owner._debugID);\n }\n } else {\n instance._debugID = 0;\n }\n }\n\n // Internal instances should fully constructed at this point, so they should\n // not get any new fields added to them at this point.\n if (process.env.NODE_ENV !== 'production') {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\nmodule.exports = instantiateReactComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/instantiateReactComponent.js\n ** module id = 128\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactReconciler = require('./ReactReconciler');\n\nvar checkReactTypeSpec = require('./checkReactTypeSpec');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || ReactElement.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction invokeComponentDidMountWithTimer() {\n var publicInstance = this._instance;\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidMount');\n }\n publicInstance.componentDidMount();\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidMount');\n }\n}\n\nfunction invokeComponentDidUpdateWithTimer(prevProps, prevState, prevContext) {\n var publicInstance = this._instance;\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidUpdate');\n }\n publicInstance.componentDidUpdate(prevProps, prevState, prevContext);\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidUpdate');\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function (element) {\n this._currentElement = element;\n this._rootNodeID = null;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || ReactElement.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = updateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%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.', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(invokeComponentDidMountWithTimer, this);\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID) {\n var callback = function (component) {\n return ReactInstrumentation.debugTool.onComponentHasMounted(_this._debugID);\n };\n transaction.getReactMountReady().enqueue(callback, this);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n var instanceOrElement;\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'ctor');\n }\n }\n instanceOrElement = new Component(publicProps, publicContext, updateQueue);\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'ctor');\n }\n }\n } else {\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render');\n }\n }\n instanceOrElement = Component(publicProps, publicContext, updateQueue);\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render');\n }\n }\n }\n return instanceOrElement;\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onError();\n }\n }\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillMount');\n }\n }\n inst.componentWillMount();\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillMount');\n }\n }\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n if (process.env.NODE_ENV !== 'production') {\n if (child._debugID !== 0 && this._debugID !== 0) {\n ReactInstrumentation.debugTool.onSetParent(child._debugID, this._debugID);\n }\n }\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context));\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUnmount');\n }\n }\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n inst.componentWillUnmount();\n }\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUnmount');\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = null;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function (context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function (context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function (currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n }\n var childContext = inst.getChildContext && inst.getChildContext();\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n if (childContext) {\n !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n },\n\n receiveComponent: function (nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillReceiveProps');\n }\n }\n inst.componentWillReceiveProps(nextProps, nextContext);\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillReceiveProps');\n }\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'shouldComponentUpdate');\n }\n }\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'shouldComponentUpdate');\n }\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function (props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = _assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUpdate');\n }\n }\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUpdate');\n }\n }\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(invokeComponentDidUpdateWithTimer.bind(this, prevProps, prevState, prevContext), this);\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID) {\n var callback = function () {\n return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID);\n };\n transaction.getReactMountReady().enqueue(callback, this);\n }\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function (transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n if (process.env.NODE_ENV !== 'production') {\n if (child._debugID !== 0 && this._debugID !== 0) {\n ReactInstrumentation.debugTool.onSetParent(child._debugID, this._debugID);\n }\n }\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context));\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render');\n }\n }\n var renderedComponent = inst.render();\n if (process.env.NODE_ENV !== 'production') {\n if (this._debugID !== 0) {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedComponent === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedComponent = null;\n }\n }\n\n return renderedComponent;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedComponent;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedComponent;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function (ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function (ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function () {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function () {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nvar ReactCompositeComponent = {\n\n Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactCompositeComponent.js\n ** module id = 129\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNodeTypes\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function (node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (ReactElement.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactNodeTypes.js\n ** module id = 130\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/shallowEqual.js\n ** module id = 131\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement;\n var nextType = typeof nextElement;\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/shouldUpdateReactComponent.js\n ** module id = 132\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function (factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function (instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactEmptyComponent.js\n ** module id = 133\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactHostComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around host tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\n // This accepts a class that receives the tag string. This is a catch all\n // that can render any kind of tag.\n injectGenericComponentClass: function (componentClass) {\n genericComponentClass = componentClass;\n },\n // This accepts a text component class that takes the text string to be\n // rendered as props.\n injectTextComponentClass: function (componentClass) {\n textComponentClass = componentClass;\n },\n // This accepts a keyed object with classes as values. Each key represents a\n // tag. That particular tag will use this class instead of the generic one.\n injectComponentClasses: function (componentClasses) {\n _assign(tagToComponentClass, componentClasses);\n }\n};\n\n/**\n * Get a host internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n return component instanceof textComponentClass;\n}\n\nvar ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactHostComponent.js\n ** module id = 134\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n * \n */\n\n'use strict';\n\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeDevtool;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeDevtool) {\n ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool');\n }\n process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeDevtool.getStackAddendumByID(selfDebugID)) : void 0;\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/flattenChildren.js\n ** module id = 135\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\nvar Transaction = require('./Transaction');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactServerUpdateQueue = require('./ReactServerUpdateQueue');\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array} Empty list of operation wrap procedures.\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return this.updateQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {},\n\n checkpoint: function () {},\n\n rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactServerRenderingTransaction.js\n ** module id = 136\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerUpdateQueue\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar Transaction = require('./Transaction');\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n /* :: transaction: Transaction; */\n\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n return false;\n };\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n }\n };\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\n };\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\n };\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactServerUpdateQueue.js\n ** module id = 137\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%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, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function (internalInstance, callback) {\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactUpdateQueue.js\n ** module id = 138\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n\n case 'pre':\n case 'listing':\n\n case 'table':\n\n case 'hr':\n\n case 'xmp':\n\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function (instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n if (childTag !== '#text') {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>. ' + 'See %s.%s', tagDisplayName, ancestorTag, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/validateDOMNesting.js\n ** module id = 139\n ** module chunks = 4\n **/","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMEmptyComponent\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = null;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function () {},\n getHostNode: function () {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function () {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMEmptyComponent.js\n ** module id = 140\n ** module chunks = 4\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTreeTraversal\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], false, arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], true, arg);\n }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], true, argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], false, argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMTreeTraversal.js\n ** module id = 141\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = null;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetText(this._debugID, this._stringText);\n\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting('#text', this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function (nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetText(this._debugID, nextStringText);\n }\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMTextComponent.js\n ** module id = 142\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function () {\n ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n this.reinitializeTransaction();\n}\n\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n isBatchingUpdates: false,\n\n /**\n * Call the provided function in a context within which calls to `setState`\n * and friends are batched such that components aren't updated unnecessarily.\n */\n batchedUpdates: function (callback, a, b, c, d, e) {\n var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n // The code is written this way to avoid extra allocations\n if (alreadyBatchingUpdates) {\n callback(a, b, c, d, e);\n } else {\n transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDefaultBatchingStrategy.js\n ** module id = 143\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function () {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function (handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function (enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function () {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function (refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function (topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactEventListener.js\n ** module id = 144\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/EventListener.js\n ** module id = 145\n ** module chunks = 4\n **/","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable === window) {\n return {\n x: window.pageXOffset || document.documentElement.scrollLeft,\n y: window.pageYOffset || document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/getUnboundedScrollPosition.js\n ** module id = 146\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactClass = require('./ReactClass');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n Class: ReactClass.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInjection.js\n ** module id = 147\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function () {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function (previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function () {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function () {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactReconcileTransaction.js\n ** module id = 148\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n hasSelectionCapabilities: function (elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n },\n\n getSelectionInformation: function () {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n };\n },\n\n /**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n restoreSelection: function (priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n }\n focusNode(priorFocusedElem);\n }\n },\n\n /**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n getSelection: function (input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n // IE8 input.\n var range = document.selection.createRange();\n // There can only be one selection per document in IE, so it must\n // be in our element.\n if (range.parentElement() === input) {\n selection = {\n start: -range.moveStart('character', -input.value.length),\n end: -range.moveEnd('character', -input.value.length)\n };\n }\n } else {\n // Content editable or old IE textarea.\n selection = ReactDOMSelection.getOffsets(input);\n }\n\n return selection || { start: 0, end: 0 };\n },\n\n /**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n setSelection: function (input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n } else {\n ReactDOMSelection.setOffsets(input, offsets);\n }\n }\n};\n\nmodule.exports = ReactInputSelection;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInputSelection.js\n ** module id = 149\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n var selection = document.selection;\n var selectedRange = selection.createRange();\n var selectedLength = selectedRange.text.length;\n\n // Duplicate selection so we can move range without breaking user selection.\n var fromStart = selectedRange.duplicate();\n fromStart.moveToElementText(node);\n fromStart.setEndPoint('EndToStart', selectedRange);\n\n var startOffset = fromStart.text.length;\n var endOffset = startOffset + selectedLength;\n\n return {\n start: startOffset,\n end: endOffset\n };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n var currentRange = selection.getRangeAt(0);\n\n // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n // divs do not seem to expose properties, triggering a \"Permission denied\n // error\" if any of its properties are accessed. The only seemingly possible\n // way to avoid erroring is to access a property that typically works for\n // non-anonymous divs and catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n try {\n /* eslint-disable no-unused-expressions */\n currentRange.startContainer.nodeType;\n currentRange.endContainer.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n // If the node and offset values are the same, the selection is collapsed.\n // `Selection.isCollapsed` is available natively, but IE sometimes gets\n // this value wrong.\n var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n var tempRange = currentRange.cloneRange();\n tempRange.selectNodeContents(node);\n tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n var end = start + rangeLength;\n\n // Detect whether the selection is backward.\n var detectionRange = document.createRange();\n detectionRange.setStart(anchorNode, anchorOffset);\n detectionRange.setEnd(focusNode, focusOffset);\n var isBackward = detectionRange.collapsed;\n\n return {\n start: isBackward ? end : start,\n end: isBackward ? start : end\n };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n var range = document.selection.createRange().duplicate();\n var start, end;\n\n if (offsets.end === undefined) {\n start = offsets.start;\n end = start;\n } else if (offsets.start > offsets.end) {\n start = offsets.end;\n end = offsets.start;\n } else {\n start = offsets.start;\n end = offsets.end;\n }\n\n range.moveToElementText(node);\n range.moveStart('character', start);\n range.setEndPoint('EndToStart', range);\n range.moveEnd('character', end - start);\n range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n /**\n * @param {DOMElement} node\n */\n getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n /**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMSelection.js\n ** module id = 150\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === 3) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\nmodule.exports = getNodeForCharacterOffset;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getNodeForCharacterOffset.js\n ** module id = 151\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/containsNode.js\n ** module id = 152\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/isTextNode.js\n ** module id = 153\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/isNode.js\n ** module id = 154\n ** module chunks = 4\n **/","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n */\nfunction getActiveElement() /*?DOMElement*/{\n if (typeof document === 'undefined') {\n return null;\n }\n try {\n return document.activeElement || document.body;\n } catch (e) {\n return document.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/fbjs/lib/getActiveElement.js\n ** module id = 155\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\n DOMAttributeNamespaces: {\n xlinkActuate: NS.xlink,\n xlinkArcrole: NS.xlink,\n xlinkHref: NS.xlink,\n xlinkRole: NS.xlink,\n xlinkShow: NS.xlink,\n xlinkTitle: NS.xlink,\n xlinkType: NS.xlink,\n xmlBase: NS.xml,\n xmlLang: NS.xml,\n xmlSpace: NS.xml\n },\n DOMAttributeNames: {}\n};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SVGDOMPropertyConfig.js\n ** module id = 156\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSelect: null }),\n captured: keyOf({ onSelectCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case topLevelTypes.topFocus:\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case topLevelTypes.topBlur:\n activeElement = null;\n activeElementInst = null;\n lastSelection = null;\n break;\n\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case topLevelTypes.topMouseDown:\n mouseDown = true;\n break;\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topMouseUp:\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case topLevelTypes.topSelectionChange:\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === ON_SELECT_KEY) {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SelectEventPlugin.js\n ** module id = 157\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventConstants = require('./EventConstants');\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticAnimationEvent = require('./SyntheticAnimationEvent');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticTransitionEvent = require('./SyntheticTransitionEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n abort: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAbort: true }),\n captured: keyOf({ onAbortCapture: true })\n }\n },\n animationEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAnimationEnd: true }),\n captured: keyOf({ onAnimationEndCapture: true })\n }\n },\n animationIteration: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAnimationIteration: true }),\n captured: keyOf({ onAnimationIterationCapture: true })\n }\n },\n animationStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAnimationStart: true }),\n captured: keyOf({ onAnimationStartCapture: true })\n }\n },\n blur: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onBlur: true }),\n captured: keyOf({ onBlurCapture: true })\n }\n },\n canPlay: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCanPlay: true }),\n captured: keyOf({ onCanPlayCapture: true })\n }\n },\n canPlayThrough: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCanPlayThrough: true }),\n captured: keyOf({ onCanPlayThroughCapture: true })\n }\n },\n click: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onClick: true }),\n captured: keyOf({ onClickCapture: true })\n }\n },\n contextMenu: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onContextMenu: true }),\n captured: keyOf({ onContextMenuCapture: true })\n }\n },\n copy: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCopy: true }),\n captured: keyOf({ onCopyCapture: true })\n }\n },\n cut: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCut: true }),\n captured: keyOf({ onCutCapture: true })\n }\n },\n doubleClick: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDoubleClick: true }),\n captured: keyOf({ onDoubleClickCapture: true })\n }\n },\n drag: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDrag: true }),\n captured: keyOf({ onDragCapture: true })\n }\n },\n dragEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragEnd: true }),\n captured: keyOf({ onDragEndCapture: true })\n }\n },\n dragEnter: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragEnter: true }),\n captured: keyOf({ onDragEnterCapture: true })\n }\n },\n dragExit: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragExit: true }),\n captured: keyOf({ onDragExitCapture: true })\n }\n },\n dragLeave: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragLeave: true }),\n captured: keyOf({ onDragLeaveCapture: true })\n }\n },\n dragOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragOver: true }),\n captured: keyOf({ onDragOverCapture: true })\n }\n },\n dragStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragStart: true }),\n captured: keyOf({ onDragStartCapture: true })\n }\n },\n drop: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDrop: true }),\n captured: keyOf({ onDropCapture: true })\n }\n },\n durationChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDurationChange: true }),\n captured: keyOf({ onDurationChangeCapture: true })\n }\n },\n emptied: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEmptied: true }),\n captured: keyOf({ onEmptiedCapture: true })\n }\n },\n encrypted: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEncrypted: true }),\n captured: keyOf({ onEncryptedCapture: true })\n }\n },\n ended: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEnded: true }),\n captured: keyOf({ onEndedCapture: true })\n }\n },\n error: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onError: true }),\n captured: keyOf({ onErrorCapture: true })\n }\n },\n focus: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onFocus: true }),\n captured: keyOf({ onFocusCapture: true })\n }\n },\n input: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onInput: true }),\n captured: keyOf({ onInputCapture: true })\n }\n },\n invalid: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onInvalid: true }),\n captured: keyOf({ onInvalidCapture: true })\n }\n },\n keyDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyDown: true }),\n captured: keyOf({ onKeyDownCapture: true })\n }\n },\n keyPress: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyPress: true }),\n captured: keyOf({ onKeyPressCapture: true })\n }\n },\n keyUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyUp: true }),\n captured: keyOf({ onKeyUpCapture: true })\n }\n },\n load: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoad: true }),\n captured: keyOf({ onLoadCapture: true })\n }\n },\n loadedData: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadedData: true }),\n captured: keyOf({ onLoadedDataCapture: true })\n }\n },\n loadedMetadata: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadedMetadata: true }),\n captured: keyOf({ onLoadedMetadataCapture: true })\n }\n },\n loadStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadStart: true }),\n captured: keyOf({ onLoadStartCapture: true })\n }\n },\n // Note: We do not allow listening to mouseOver events. Instead, use the\n // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n mouseDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseDown: true }),\n captured: keyOf({ onMouseDownCapture: true })\n }\n },\n mouseMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseMove: true }),\n captured: keyOf({ onMouseMoveCapture: true })\n }\n },\n mouseOut: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseOut: true }),\n captured: keyOf({ onMouseOutCapture: true })\n }\n },\n mouseOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseOver: true }),\n captured: keyOf({ onMouseOverCapture: true })\n }\n },\n mouseUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseUp: true }),\n captured: keyOf({ onMouseUpCapture: true })\n }\n },\n paste: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPaste: true }),\n captured: keyOf({ onPasteCapture: true })\n }\n },\n pause: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPause: true }),\n captured: keyOf({ onPauseCapture: true })\n }\n },\n play: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPlay: true }),\n captured: keyOf({ onPlayCapture: true })\n }\n },\n playing: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPlaying: true }),\n captured: keyOf({ onPlayingCapture: true })\n }\n },\n progress: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onProgress: true }),\n captured: keyOf({ onProgressCapture: true })\n }\n },\n rateChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onRateChange: true }),\n captured: keyOf({ onRateChangeCapture: true })\n }\n },\n reset: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onReset: true }),\n captured: keyOf({ onResetCapture: true })\n }\n },\n scroll: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onScroll: true }),\n captured: keyOf({ onScrollCapture: true })\n }\n },\n seeked: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSeeked: true }),\n captured: keyOf({ onSeekedCapture: true })\n }\n },\n seeking: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSeeking: true }),\n captured: keyOf({ onSeekingCapture: true })\n }\n },\n stalled: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onStalled: true }),\n captured: keyOf({ onStalledCapture: true })\n }\n },\n submit: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSubmit: true }),\n captured: keyOf({ onSubmitCapture: true })\n }\n },\n suspend: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSuspend: true }),\n captured: keyOf({ onSuspendCapture: true })\n }\n },\n timeUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTimeUpdate: true }),\n captured: keyOf({ onTimeUpdateCapture: true })\n }\n },\n touchCancel: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchCancel: true }),\n captured: keyOf({ onTouchCancelCapture: true })\n }\n },\n touchEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchEnd: true }),\n captured: keyOf({ onTouchEndCapture: true })\n }\n },\n touchMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchMove: true }),\n captured: keyOf({ onTouchMoveCapture: true })\n }\n },\n touchStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchStart: true }),\n captured: keyOf({ onTouchStartCapture: true })\n }\n },\n transitionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTransitionEnd: true }),\n captured: keyOf({ onTransitionEndCapture: true })\n }\n },\n volumeChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onVolumeChange: true }),\n captured: keyOf({ onVolumeChangeCapture: true })\n }\n },\n waiting: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onWaiting: true }),\n captured: keyOf({ onWaitingCapture: true })\n }\n },\n wheel: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onWheel: true }),\n captured: keyOf({ onWheelCapture: true })\n }\n }\n};\n\nvar topLevelEventsToDispatchConfig = {\n topAbort: eventTypes.abort,\n topAnimationEnd: eventTypes.animationEnd,\n topAnimationIteration: eventTypes.animationIteration,\n topAnimationStart: eventTypes.animationStart,\n topBlur: eventTypes.blur,\n topCanPlay: eventTypes.canPlay,\n topCanPlayThrough: eventTypes.canPlayThrough,\n topClick: eventTypes.click,\n topContextMenu: eventTypes.contextMenu,\n topCopy: eventTypes.copy,\n topCut: eventTypes.cut,\n topDoubleClick: eventTypes.doubleClick,\n topDrag: eventTypes.drag,\n topDragEnd: eventTypes.dragEnd,\n topDragEnter: eventTypes.dragEnter,\n topDragExit: eventTypes.dragExit,\n topDragLeave: eventTypes.dragLeave,\n topDragOver: eventTypes.dragOver,\n topDragStart: eventTypes.dragStart,\n topDrop: eventTypes.drop,\n topDurationChange: eventTypes.durationChange,\n topEmptied: eventTypes.emptied,\n topEncrypted: eventTypes.encrypted,\n topEnded: eventTypes.ended,\n topError: eventTypes.error,\n topFocus: eventTypes.focus,\n topInput: eventTypes.input,\n topInvalid: eventTypes.invalid,\n topKeyDown: eventTypes.keyDown,\n topKeyPress: eventTypes.keyPress,\n topKeyUp: eventTypes.keyUp,\n topLoad: eventTypes.load,\n topLoadedData: eventTypes.loadedData,\n topLoadedMetadata: eventTypes.loadedMetadata,\n topLoadStart: eventTypes.loadStart,\n topMouseDown: eventTypes.mouseDown,\n topMouseMove: eventTypes.mouseMove,\n topMouseOut: eventTypes.mouseOut,\n topMouseOver: eventTypes.mouseOver,\n topMouseUp: eventTypes.mouseUp,\n topPaste: eventTypes.paste,\n topPause: eventTypes.pause,\n topPlay: eventTypes.play,\n topPlaying: eventTypes.playing,\n topProgress: eventTypes.progress,\n topRateChange: eventTypes.rateChange,\n topReset: eventTypes.reset,\n topScroll: eventTypes.scroll,\n topSeeked: eventTypes.seeked,\n topSeeking: eventTypes.seeking,\n topStalled: eventTypes.stalled,\n topSubmit: eventTypes.submit,\n topSuspend: eventTypes.suspend,\n topTimeUpdate: eventTypes.timeUpdate,\n topTouchCancel: eventTypes.touchCancel,\n topTouchEnd: eventTypes.touchEnd,\n topTouchMove: eventTypes.touchMove,\n topTouchStart: eventTypes.touchStart,\n topTransitionEnd: eventTypes.transitionEnd,\n topVolumeChange: eventTypes.volumeChange,\n topWaiting: eventTypes.waiting,\n topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n return '.' + inst._rootNodeID;\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case topLevelTypes.topAbort:\n case topLevelTypes.topCanPlay:\n case topLevelTypes.topCanPlayThrough:\n case topLevelTypes.topDurationChange:\n case topLevelTypes.topEmptied:\n case topLevelTypes.topEncrypted:\n case topLevelTypes.topEnded:\n case topLevelTypes.topError:\n case topLevelTypes.topInput:\n case topLevelTypes.topInvalid:\n case topLevelTypes.topLoad:\n case topLevelTypes.topLoadedData:\n case topLevelTypes.topLoadedMetadata:\n case topLevelTypes.topLoadStart:\n case topLevelTypes.topPause:\n case topLevelTypes.topPlay:\n case topLevelTypes.topPlaying:\n case topLevelTypes.topProgress:\n case topLevelTypes.topRateChange:\n case topLevelTypes.topReset:\n case topLevelTypes.topSeeked:\n case topLevelTypes.topSeeking:\n case topLevelTypes.topStalled:\n case topLevelTypes.topSubmit:\n case topLevelTypes.topSuspend:\n case topLevelTypes.topTimeUpdate:\n case topLevelTypes.topVolumeChange:\n case topLevelTypes.topWaiting:\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case topLevelTypes.topKeyPress:\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case topLevelTypes.topBlur:\n case topLevelTypes.topFocus:\n EventConstructor = SyntheticFocusEvent;\n break;\n case topLevelTypes.topClick:\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topDoubleClick:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topMouseMove:\n case topLevelTypes.topMouseOut:\n case topLevelTypes.topMouseOver:\n case topLevelTypes.topMouseUp:\n EventConstructor = SyntheticMouseEvent;\n break;\n case topLevelTypes.topDrag:\n case topLevelTypes.topDragEnd:\n case topLevelTypes.topDragEnter:\n case topLevelTypes.topDragExit:\n case topLevelTypes.topDragLeave:\n case topLevelTypes.topDragOver:\n case topLevelTypes.topDragStart:\n case topLevelTypes.topDrop:\n EventConstructor = SyntheticDragEvent;\n break;\n case topLevelTypes.topTouchCancel:\n case topLevelTypes.topTouchEnd:\n case topLevelTypes.topTouchMove:\n case topLevelTypes.topTouchStart:\n EventConstructor = SyntheticTouchEvent;\n break;\n case topLevelTypes.topAnimationEnd:\n case topLevelTypes.topAnimationIteration:\n case topLevelTypes.topAnimationStart:\n EventConstructor = SyntheticAnimationEvent;\n break;\n case topLevelTypes.topTransitionEnd:\n EventConstructor = SyntheticTransitionEvent;\n break;\n case topLevelTypes.topScroll:\n EventConstructor = SyntheticUIEvent;\n break;\n case topLevelTypes.topWheel:\n EventConstructor = SyntheticWheelEvent;\n break;\n case topLevelTypes.topCopy:\n case topLevelTypes.topCut:\n case topLevelTypes.topPaste:\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n if (registrationName === ON_CLICK_KEY) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === ON_CLICK_KEY) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SimpleEventPlugin.js\n ** module id = 158\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticAnimationEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticAnimationEvent.js\n ** module id = 159\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticClipboardEvent.js\n ** module id = 160\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticFocusEvent.js\n ** module id = 161\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticKeyboardEvent.js\n ** module id = 162\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventCharCode.js\n ** module id = 163\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n */\n\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n 'Esc': 'Escape',\n 'Spacebar': ' ',\n 'Left': 'ArrowLeft',\n 'Up': 'ArrowUp',\n 'Right': 'ArrowRight',\n 'Down': 'ArrowDown',\n 'Del': 'Delete',\n 'Win': 'OS',\n 'Menu': 'ContextMenu',\n 'Apps': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventKey.js\n ** module id = 164\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticDragEvent.js\n ** module id = 165\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticTouchEvent.js\n ** module id = 166\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTransitionEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticTransitionEvent.js\n ** module id = 167\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX :\n // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY :\n // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY :\n // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticWheelEvent.js\n ** module id = 168\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMProperty = require('./DOMProperty');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMContainerInfo = require('./ReactDOMContainerInfo');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactElement = require('./ReactElement');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n // this.props is actually a ReactElement\n return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n TopLevelWrapper: TopLevelWrapper,\n\n /**\n * Used by devtools. The keys are not important.\n */\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function (container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by devtools!\n *\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\n\n if (process.env.NODE_ENV !== 'production') {\n // The instance here is TopLevelWrapper so we report mount for its child.\n ReactInstrumentation.debugTool.onMountRootComponent(componentInstance._renderedComponent._debugID);\n }\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !ReactElement.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\n // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n var nextWrappedElement = ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function (nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function (container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, rootElement);\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation(hostNode._debugID, 'mount', markup.toString());\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMount.js\n ** module id = 169\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMContainerInfo\n */\n\n'use strict';\n\nvar validateDOMNesting = require('./validateDOMNesting');\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMContainerInfo.js\n ** module id = 170\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMFeatureFlags.js\n ** module id = 171\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\n\nvar ReactMarkupChecksum = {\n CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n /**\n * @param {string} markup Markup string\n * @return {string} Markup string with checksum attribute attached\n */\n addChecksumToMarkup: function (markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\n },\n\n /**\n * @param {string} markup to use\n * @param {DOMElement} element root React element\n * @returns {boolean} whether or not the markup is the same\n */\n canReuseMarkup: function (markup, element) {\n var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n var markupChecksum = adler32(markup);\n return markupChecksum === existingChecksum;\n }\n};\n\nmodule.exports = ReactMarkupChecksum;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMarkupChecksum.js\n ** module id = 172\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n * \n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n var a = 1;\n var b = 0;\n var i = 0;\n var l = data.length;\n var m = l & ~0x3;\n while (i < m) {\n var n = Math.min(i + 4096, m);\n for (; i < n; i += 4) {\n b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n }\n a %= MOD;\n b %= MOD;\n }\n for (; i < l; i++) {\n b += a += data.charCodeAt(i);\n }\n a %= MOD;\n b %= MOD;\n return a | b << 16;\n}\n\nmodule.exports = adler32;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/adler32.js\n ** module id = 173\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/findDOMNode.js\n ** module id = 174\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getHostComponentFromComposite\n */\n\n'use strict';\n\nvar ReactNodeTypes = require('./ReactNodeTypes');\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getHostComponentFromComposite.js\n ** module id = 175\n ** module chunks = 4\n **/","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/renderSubtreeIntoContainer.js\n ** module id = 176\n ** module chunks = 4\n **/","//! moment.js\n//! version : 2.14.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, function () { 'use strict';\n\n var hookCallback;\n\n function utils_hooks__hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n return Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n var k;\n for (k in obj) {\n // even if its not own property I'd still call it non-empty\n return false;\n }\n return true;\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function create_utc__createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function valid__isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n m._isValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n m._isValid = m._isValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n return m._isValid;\n }\n\n function valid__createInvalid (flags) {\n var m = create_utc__createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = utils_hooks__hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i in momentProperties) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n utils_hooks__hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (utils_hooks__hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (utils_hooks__hooks.deprecationHandler != null) {\n utils_hooks__hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (utils_hooks__hooks.deprecationHandler != null) {\n utils_hooks__hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n utils_hooks__hooks.suppressDeprecationWarnings = false;\n utils_hooks__hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function locale_set__set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _ordinalParseLenient.\n this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function locale_calendar__calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relative__relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n get_set__set(this, unit, value);\n utils_hooks__hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get_set__get(this, unit);\n }\n };\n }\n\n function get_set__get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function get_set__set (mom, unit, value) {\n if (mom.isValid()) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (typeof callback === 'number') {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function units_month__handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = create_utc__createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return units_month__handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = create_utc__createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (typeof value !== 'number') {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n utils_hooks__hooks.updateOffset(this, true);\n return this;\n } else {\n return get_set__get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = create_utc__createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n utils_hooks__hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n //can't just apply() to create a date:\n //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply\n var date = new Date(y, m, d, h, M, s, ms);\n\n //the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n //the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return this._weekdaysShort[m.day()];\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return this._weekdaysMin[m.day()];\n }\n\n function day_of_week__handleStrictParse(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = create_utc__createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return day_of_week__handleStrictParse.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = create_utc__createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = create_utc__createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour he wants. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n ordinalParse: defaultOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n require('./locale/' + name);\n // because defineLocale currently also sets the global locale, we\n // want to undo that for lazy loaded locales\n locale_locales__getSetGlobalLocale(oldLocale);\n } catch (e) { }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function locale_locales__getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = locale_locales__getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n // treat as if there is no base config\n deprecateSimple('parentLocaleUndefined',\n 'specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/');\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n // backwards compat for now: also set the locale\n locale_locales__getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, parentConfig = baseConfig;\n // MERGE\n if (locales[name] != null) {\n parentConfig = locales[name]._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n locale_locales__getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function locale_locales__getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function locale_locales__listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n utils_hooks__hooks.createFromInputFallback(config);\n }\n }\n\n utils_hooks__hooks.createFromInputFallback = deprecate(\n 'moment construction falls back to js Date. This is ' +\n 'discouraged and will be removed in upcoming major ' +\n 'release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(utils_hooks__hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse)) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year);\n week = defaults(w.w, 1);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n utils_hooks__hooks.ISO_8601 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === utils_hooks__hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!valid__isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || locale_locales__getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return valid__createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (isDate(input)) {\n config._d = input;\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!valid__isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (input === undefined) {\n config._d = new Date(utils_hooks__hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (typeof(input) === 'object') {\n configFromObject(config);\n } else if (typeof(input) === 'number') {\n // from milliseconds\n config._d = new Date(input);\n } else {\n utils_hooks__hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (typeof(locale) === 'boolean') {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function local__createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = local__createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return valid__createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = local__createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return valid__createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return local__createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = locale_locales__getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = ((string || '').match(matcher) || []);\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : local__createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n utils_hooks__hooks.updateOffset(res, false);\n return res;\n } else {\n return local__createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n utils_hooks__hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n } else if (Math.abs(input) < 16) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n utils_hooks__hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm) {\n this.utcOffset(this._tzm);\n } else if (typeof this._i === 'string') {\n this.utcOffset(offsetFromString(matchOffset, this._i));\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? local__createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?\\d*)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n\n function create__createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (typeof input === 'number') {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(match[MILLISECOND]) * sign\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n create__createDuration.fn = Duration.prototype;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = create__createDuration(val, period);\n add_subtract__addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (days) {\n get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding);\n }\n if (months) {\n setMonth(mom, get_set__get(mom, 'Month') + months * isAdding);\n }\n if (updateOffset) {\n utils_hooks__hooks.updateOffset(mom, days || months);\n }\n }\n\n var add_subtract__add = createAdder(1, 'add');\n var add_subtract__subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function moment_calendar__calendar (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || local__createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = utils_hooks__hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, local__createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : local__createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : local__createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : local__createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n delta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n if (units === 'year' || units === 'month' || units === 'quarter') {\n output = monthDiff(this, that);\n if (units === 'quarter') {\n output = output / 3;\n } else if (units === 'year') {\n output = output / 12;\n }\n } else {\n delta = this - that;\n output = units === 'second' ? delta / 1e3 : // 1000\n units === 'minute' ? delta / 6e4 : // 1000 * 60\n units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n delta;\n }\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n utils_hooks__hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function moment_format__toISOString () {\n var m = this.clone().utc();\n if (0 < m.year() && m.year() <= 9999) {\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n return this.toDate().toISOString();\n } else {\n return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n } else {\n return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? utils_hooks__hooks.defaultFormatUtc : utils_hooks__hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n local__createLocal(time).isValid())) {\n return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(local__createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n local__createLocal(time).isValid())) {\n return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(local__createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = locale_locales__getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function to_type__valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function moment_valid__isValid () {\n return valid__isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = utils_hooks__hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIOROITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0], 10);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var momentPrototype__proto = Moment.prototype;\n\n momentPrototype__proto.add = add_subtract__add;\n momentPrototype__proto.calendar = moment_calendar__calendar;\n momentPrototype__proto.clone = clone;\n momentPrototype__proto.diff = diff;\n momentPrototype__proto.endOf = endOf;\n momentPrototype__proto.format = format;\n momentPrototype__proto.from = from;\n momentPrototype__proto.fromNow = fromNow;\n momentPrototype__proto.to = to;\n momentPrototype__proto.toNow = toNow;\n momentPrototype__proto.get = stringGet;\n momentPrototype__proto.invalidAt = invalidAt;\n momentPrototype__proto.isAfter = isAfter;\n momentPrototype__proto.isBefore = isBefore;\n momentPrototype__proto.isBetween = isBetween;\n momentPrototype__proto.isSame = isSame;\n momentPrototype__proto.isSameOrAfter = isSameOrAfter;\n momentPrototype__proto.isSameOrBefore = isSameOrBefore;\n momentPrototype__proto.isValid = moment_valid__isValid;\n momentPrototype__proto.lang = lang;\n momentPrototype__proto.locale = locale;\n momentPrototype__proto.localeData = localeData;\n momentPrototype__proto.max = prototypeMax;\n momentPrototype__proto.min = prototypeMin;\n momentPrototype__proto.parsingFlags = parsingFlags;\n momentPrototype__proto.set = stringSet;\n momentPrototype__proto.startOf = startOf;\n momentPrototype__proto.subtract = add_subtract__subtract;\n momentPrototype__proto.toArray = toArray;\n momentPrototype__proto.toObject = toObject;\n momentPrototype__proto.toDate = toDate;\n momentPrototype__proto.toISOString = moment_format__toISOString;\n momentPrototype__proto.toJSON = toJSON;\n momentPrototype__proto.toString = toString;\n momentPrototype__proto.unix = unix;\n momentPrototype__proto.valueOf = to_type__valueOf;\n momentPrototype__proto.creationData = creationData;\n\n // Year\n momentPrototype__proto.year = getSetYear;\n momentPrototype__proto.isLeapYear = getIsLeapYear;\n\n // Week Year\n momentPrototype__proto.weekYear = getSetWeekYear;\n momentPrototype__proto.isoWeekYear = getSetISOWeekYear;\n\n // Quarter\n momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter;\n\n // Month\n momentPrototype__proto.month = getSetMonth;\n momentPrototype__proto.daysInMonth = getDaysInMonth;\n\n // Week\n momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek;\n momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek;\n momentPrototype__proto.weeksInYear = getWeeksInYear;\n momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear;\n\n // Day\n momentPrototype__proto.date = getSetDayOfMonth;\n momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek;\n momentPrototype__proto.weekday = getSetLocaleDayOfWeek;\n momentPrototype__proto.isoWeekday = getSetISODayOfWeek;\n momentPrototype__proto.dayOfYear = getSetDayOfYear;\n\n // Hour\n momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour;\n\n // Minute\n momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute;\n\n // Second\n momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond;\n\n // Millisecond\n momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond;\n\n // Offset\n momentPrototype__proto.utcOffset = getSetOffset;\n momentPrototype__proto.utc = setOffsetToUTC;\n momentPrototype__proto.local = setOffsetToLocal;\n momentPrototype__proto.parseZone = setOffsetToParsedOffset;\n momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset;\n momentPrototype__proto.isDST = isDaylightSavingTime;\n momentPrototype__proto.isLocal = isLocal;\n momentPrototype__proto.isUtcOffset = isUtcOffset;\n momentPrototype__proto.isUtc = isUtc;\n momentPrototype__proto.isUTC = isUtc;\n\n // Timezone\n momentPrototype__proto.zoneAbbr = getZoneAbbr;\n momentPrototype__proto.zoneName = getZoneName;\n\n // Deprecations\n momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n momentPrototype__proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n var momentPrototype = momentPrototype__proto;\n\n function moment__createUnix (input) {\n return local__createLocal(input * 1000);\n }\n\n function moment__createInZone () {\n return local__createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var prototype__proto = Locale.prototype;\n\n prototype__proto.calendar = locale_calendar__calendar;\n prototype__proto.longDateFormat = longDateFormat;\n prototype__proto.invalidDate = invalidDate;\n prototype__proto.ordinal = ordinal;\n prototype__proto.preparse = preParsePostFormat;\n prototype__proto.postformat = preParsePostFormat;\n prototype__proto.relativeTime = relative__relativeTime;\n prototype__proto.pastFuture = pastFuture;\n prototype__proto.set = locale_set__set;\n\n // Month\n prototype__proto.months = localeMonths;\n prototype__proto.monthsShort = localeMonthsShort;\n prototype__proto.monthsParse = localeMonthsParse;\n prototype__proto.monthsRegex = monthsRegex;\n prototype__proto.monthsShortRegex = monthsShortRegex;\n\n // Week\n prototype__proto.week = localeWeek;\n prototype__proto.firstDayOfYear = localeFirstDayOfYear;\n prototype__proto.firstDayOfWeek = localeFirstDayOfWeek;\n\n // Day of Week\n prototype__proto.weekdays = localeWeekdays;\n prototype__proto.weekdaysMin = localeWeekdaysMin;\n prototype__proto.weekdaysShort = localeWeekdaysShort;\n prototype__proto.weekdaysParse = localeWeekdaysParse;\n\n prototype__proto.weekdaysRegex = weekdaysRegex;\n prototype__proto.weekdaysShortRegex = weekdaysShortRegex;\n prototype__proto.weekdaysMinRegex = weekdaysMinRegex;\n\n // Hours\n prototype__proto.isPM = localeIsPM;\n prototype__proto.meridiem = localeMeridiem;\n\n function lists__get (format, index, field, setter) {\n var locale = locale_locales__getLocale();\n var utc = create_utc__createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (typeof format === 'number') {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return lists__get(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = lists__get(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (typeof format === 'number') {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (typeof format === 'number') {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = locale_locales__getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return lists__get(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = lists__get(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function lists__listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function lists__listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function lists__listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function lists__listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function lists__listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n locale_locales__getSetGlobalLocale('en', {\n ordinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale);\n utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale);\n\n var mathAbs = Math.abs;\n\n function duration_abs__abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function duration_add_subtract__addSubtract (duration, input, value, direction) {\n var other = create__createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function duration_add_subtract__add (input, value) {\n return duration_add_subtract__addSubtract(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function duration_add_subtract__subtract (input, value) {\n return duration_add_subtract__addSubtract(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function duration_as__valueOf () {\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function duration_get__get (units) {\n units = normalizeUnits(units);\n return this[units + 's']();\n }\n\n function makeGetter(name) {\n return function () {\n return this._data[name];\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) {\n var duration = create__createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds < thresholds.s && ['s', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function duration_humanize__getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n return true;\n }\n\n function humanize (withSuffix) {\n var locale = this.localeData();\n var output = duration_humanize__relativeTime(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var iso_string__abs = Math.abs;\n\n function iso_string__toISOString() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n var seconds = iso_string__abs(this._milliseconds) / 1000;\n var days = iso_string__abs(this._days);\n var months = iso_string__abs(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds;\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n return (total < 0 ? '-' : '') +\n 'P' +\n (Y ? Y + 'Y' : '') +\n (M ? M + 'M' : '') +\n (D ? D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? h + 'H' : '') +\n (m ? m + 'M' : '') +\n (s ? s + 'S' : '');\n }\n\n var duration_prototype__proto = Duration.prototype;\n\n duration_prototype__proto.abs = duration_abs__abs;\n duration_prototype__proto.add = duration_add_subtract__add;\n duration_prototype__proto.subtract = duration_add_subtract__subtract;\n duration_prototype__proto.as = as;\n duration_prototype__proto.asMilliseconds = asMilliseconds;\n duration_prototype__proto.asSeconds = asSeconds;\n duration_prototype__proto.asMinutes = asMinutes;\n duration_prototype__proto.asHours = asHours;\n duration_prototype__proto.asDays = asDays;\n duration_prototype__proto.asWeeks = asWeeks;\n duration_prototype__proto.asMonths = asMonths;\n duration_prototype__proto.asYears = asYears;\n duration_prototype__proto.valueOf = duration_as__valueOf;\n duration_prototype__proto._bubble = bubble;\n duration_prototype__proto.get = duration_get__get;\n duration_prototype__proto.milliseconds = milliseconds;\n duration_prototype__proto.seconds = seconds;\n duration_prototype__proto.minutes = minutes;\n duration_prototype__proto.hours = hours;\n duration_prototype__proto.days = days;\n duration_prototype__proto.weeks = weeks;\n duration_prototype__proto.months = months;\n duration_prototype__proto.years = years;\n duration_prototype__proto.humanize = humanize;\n duration_prototype__proto.toISOString = iso_string__toISOString;\n duration_prototype__proto.toString = iso_string__toISOString;\n duration_prototype__proto.toJSON = iso_string__toISOString;\n duration_prototype__proto.locale = locale;\n duration_prototype__proto.localeData = localeData;\n\n // Deprecations\n duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString);\n duration_prototype__proto.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n utils_hooks__hooks.version = '2.14.1';\n\n setHookCallback(local__createLocal);\n\n utils_hooks__hooks.fn = momentPrototype;\n utils_hooks__hooks.min = min;\n utils_hooks__hooks.max = max;\n utils_hooks__hooks.now = now;\n utils_hooks__hooks.utc = create_utc__createUTC;\n utils_hooks__hooks.unix = moment__createUnix;\n utils_hooks__hooks.months = lists__listMonths;\n utils_hooks__hooks.isDate = isDate;\n utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale;\n utils_hooks__hooks.invalid = valid__createInvalid;\n utils_hooks__hooks.duration = create__createDuration;\n utils_hooks__hooks.isMoment = isMoment;\n utils_hooks__hooks.weekdays = lists__listWeekdays;\n utils_hooks__hooks.parseZone = moment__createInZone;\n utils_hooks__hooks.localeData = locale_locales__getLocale;\n utils_hooks__hooks.isDuration = isDuration;\n utils_hooks__hooks.monthsShort = lists__listMonthsShort;\n utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin;\n utils_hooks__hooks.defineLocale = defineLocale;\n utils_hooks__hooks.updateLocale = updateLocale;\n utils_hooks__hooks.locales = locale_locales__listLocales;\n utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort;\n utils_hooks__hooks.normalizeUnits = normalizeUnits;\n utils_hooks__hooks.relativeTimeRounding = duration_humanize__getSetRelativeTimeRounding;\n utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;\n utils_hooks__hooks.calendarFormat = getCalendarFormat;\n utils_hooks__hooks.prototype = momentPrototype;\n\n var _moment = utils_hooks__hooks;\n\n return _moment;\n\n}));\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/moment/moment.js\n ** module id = 177\n ** module chunks = 4\n **/","import TimePanel from './src/';\nexport default TimePanel;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","import TimePicker from './TimePicker';\nexport default TimePicker;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","import React, { PropTypes } from 'react';\nimport Trigger from 'rc-trigger';\nimport Panel from './Panel';\nimport placements from './placements';\nimport moment from 'moment';\n\nfunction noop() {\n}\n\nfunction refFn(field, component) {\n this[field] = component;\n}\n\nconst Picker = React.createClass({\n propTypes: {\n prefixCls: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n defaultOpenValue: PropTypes.object,\n disabled: PropTypes.bool,\n allowEmpty: PropTypes.bool,\n defaultValue: PropTypes.object,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n align: PropTypes.object,\n placement: PropTypes.any,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n showHour: PropTypes.bool,\n style: PropTypes.object,\n className: PropTypes.string,\n showSecond: PropTypes.bool,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n onChange: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n addon: PropTypes.func,\n },\n\n getDefaultProps() {\n return {\n clearText: 'clear',\n prefixCls: 'rc-time-picker',\n defaultOpen: false,\n style: {},\n className: '',\n align: {},\n defaultOpenValue: moment(),\n allowEmpty: true,\n showHour: true,\n showSecond: true,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n hideDisabledOptions: false,\n placement: 'bottomLeft',\n onChange: noop,\n onOpen: noop,\n onClose: noop,\n addon: noop,\n };\n },\n\n getInitialState() {\n this.savePanelRef = refFn.bind(this, 'panelInstance');\n const { defaultOpen, defaultValue, open = defaultOpen, value = defaultValue } = this.props;\n return {\n open,\n value,\n };\n },\n\n componentWillReceiveProps(nextProps) {\n const { value, open } = nextProps;\n if ('value' in nextProps) {\n this.setState({\n value,\n });\n }\n if (open !== undefined) {\n this.setState({ open });\n }\n },\n\n onPanelChange(value) {\n this.setValue(value);\n },\n\n onPanelClear() {\n this.setValue(null);\n this.setOpen(false);\n },\n\n onVisibleChange(open) {\n this.setOpen(open);\n },\n\n onEsc() {\n this.setOpen(false);\n this.refs.picker.focus();\n },\n\n onKeyDown(e) {\n if (e.keyCode === 40) {\n this.setOpen(true);\n }\n },\n\n setValue(value) {\n if (!('value' in this.props)) {\n this.setState({\n value,\n });\n }\n this.props.onChange(value);\n },\n\n getFormat() {\n const format = this.props.format;\n if (format) {\n return format;\n }\n if (!this.props.showSecond) {\n return 'HH:mm';\n }\n if (!this.props.showHour) {\n return 'mm:ss';\n }\n return 'HH:mm:ss';\n },\n\n getPanelElement() {\n const {\n prefixCls, placeholder, disabledHours,\n disabledMinutes, disabledSeconds, hideDisabledOptions,\n allowEmpty, showHour, showSecond, defaultOpenValue, clearText,\n addon,\n } = this.props;\n return (\n <Panel\n clearText={clearText}\n prefixCls={`${prefixCls}-panel`}\n ref={this.savePanelRef}\n value={this.state.value}\n onChange={this.onPanelChange}\n onClear={this.onPanelClear}\n defaultOpenValue={defaultOpenValue}\n showHour={showHour}\n onEsc={this.onEsc}\n showSecond={showSecond}\n allowEmpty={allowEmpty}\n format={this.getFormat()}\n placeholder={placeholder}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n hideDisabledOptions={hideDisabledOptions}\n addon={addon}\n />\n );\n },\n\n setOpen(open, callback) {\n const { onOpen, onClose } = this.props;\n if (this.state.open !== open) {\n this.setState({\n open,\n }, callback);\n const event = {\n open,\n };\n if (open) {\n onOpen(event);\n } else {\n onClose(event);\n }\n }\n },\n\n render() {\n const {\n prefixCls, placeholder, placement, align,\n disabled, transitionName, style, className, showHour,\n showSecond, getPopupContainer,\n } = this.props;\n const { open, value } = this.state;\n let popupClassName;\n if (!showHour || !showSecond) {\n popupClassName = `${prefixCls}-panel-narrow`;\n }\n return (\n <Trigger\n prefixCls={`${prefixCls}-panel`}\n popupClassName={popupClassName}\n popup={this.getPanelElement()}\n popupAlign={align}\n builtinPlacements={placements}\n popupPlacement={placement}\n action={disabled ? [] : ['click']}\n destroyPopupOnHide\n getPopupContainer={getPopupContainer}\n popupTransitionName={transitionName}\n popupVisible={open}\n onPopupVisibleChange={this.onVisibleChange}\n >\n <span className={`${prefixCls} ${className}`} style={style}>\n <input\n className={`${prefixCls}-input`}\n ref=\"picker\" type=\"text\" placeholder={placeholder}\n readOnly\n onKeyDown={this.onKeyDown}\n disabled={disabled} value={value && value.format(this.getFormat()) || ''}\n />\n <span className={`${prefixCls}-icon`}/>\n </span>\n </Trigger>\n );\n },\n});\n\nexport default Picker;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/TimePicker.jsx\n **/","'use strict';\n\nmodule.exports = require('./Trigger');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-trigger/lib/index.js\n ** module id = 181\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _contains = require('rc-util/lib/Dom/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _addEventListener = require('rc-util/lib/Dom/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _Popup = require('./Popup');\n\nvar _Popup2 = _interopRequireDefault(_Popup);\n\nvar _utils = require('./utils');\n\nvar _getContainerRenderMixin = require('rc-util/lib/getContainerRenderMixin');\n\nvar _getContainerRenderMixin2 = _interopRequireDefault(_getContainerRenderMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n\nvar Trigger = _react2[\"default\"].createClass({\n displayName: 'Trigger',\n\n propTypes: {\n children: _react.PropTypes.any,\n action: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.arrayOf(_react.PropTypes.string)]),\n showAction: _react.PropTypes.any,\n hideAction: _react.PropTypes.any,\n getPopupClassNameFromAlign: _react.PropTypes.any,\n onPopupVisibleChange: _react.PropTypes.func,\n afterPopupVisibleChange: _react.PropTypes.func,\n popup: _react.PropTypes.oneOfType([_react.PropTypes.node, _react.PropTypes.func]).isRequired,\n popupStyle: _react.PropTypes.object,\n prefixCls: _react.PropTypes.string,\n popupClassName: _react.PropTypes.string,\n popupPlacement: _react.PropTypes.string,\n builtinPlacements: _react.PropTypes.object,\n popupTransitionName: _react.PropTypes.string,\n popupAnimation: _react.PropTypes.any,\n mouseEnterDelay: _react.PropTypes.number,\n mouseLeaveDelay: _react.PropTypes.number,\n zIndex: _react.PropTypes.number,\n focusDelay: _react.PropTypes.number,\n blurDelay: _react.PropTypes.number,\n getPopupContainer: _react.PropTypes.func,\n destroyPopupOnHide: _react.PropTypes.bool,\n mask: _react.PropTypes.bool,\n onPopupAlign: _react.PropTypes.func,\n popupAlign: _react.PropTypes.object,\n popupVisible: _react.PropTypes.bool,\n maskTransitionName: _react.PropTypes.string,\n maskAnimation: _react.PropTypes.string\n },\n\n mixins: [(0, _getContainerRenderMixin2[\"default\"])({\n autoMount: false,\n\n isVisible: function isVisible(instance) {\n return instance.state.popupVisible;\n },\n getContainer: function getContainer(instance) {\n var popupContainer = document.createElement('div');\n var mountNode = instance.props.getPopupContainer ? instance.props.getPopupContainer((0, _reactDom.findDOMNode)(instance)) : document.body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n },\n getComponent: function getComponent(instance) {\n var props = instance.props;\n var state = instance.state;\n\n var mouseProps = {};\n if (instance.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = instance.onPopupMouseEnter;\n }\n if (instance.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = instance.onPopupMouseLeave;\n }\n return _react2[\"default\"].createElement(\n _Popup2[\"default\"],\n _extends({\n prefixCls: props.prefixCls,\n destroyPopupOnHide: props.destroyPopupOnHide,\n visible: state.popupVisible,\n className: props.popupClassName,\n action: props.action,\n align: instance.getPopupAlign(),\n onAlign: props.onPopupAlign,\n animation: props.popupAnimation,\n getClassNameFromAlign: instance.getPopupClassNameFromAlign\n }, mouseProps, {\n getRootDomNode: instance.getRootDomNode,\n style: props.popupStyle,\n mask: props.mask,\n zIndex: props.zIndex,\n transitionName: props.popupTransitionName,\n maskAnimation: props.maskAnimation,\n maskTransitionName: props.maskTransitionName\n }),\n typeof props.popup === 'function' ? props.popup() : props.popup\n );\n }\n })],\n\n getDefaultProps: function getDefaultProps() {\n return {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n action: [],\n showAction: [],\n hideAction: []\n };\n },\n getInitialState: function getInitialState() {\n var props = this.props;\n var popupVisible = void 0;\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n return {\n popupVisible: popupVisible\n };\n },\n componentWillMount: function componentWillMount() {\n var _this = this;\n\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n },\n componentDidMount: function componentDidMount() {\n this.componentDidUpdate({}, {\n popupVisible: this.state.popupVisible\n });\n },\n componentWillReceiveProps: function componentWillReceiveProps(_ref) {\n var popupVisible = _ref.popupVisible;\n\n if (popupVisible !== undefined) {\n this.setState({\n popupVisible: popupVisible\n });\n }\n },\n componentDidUpdate: function componentDidUpdate(_, prevState) {\n var props = this.props;\n var state = this.state;\n this.renderComponent(null, function () {\n if (prevState.popupVisible !== state.popupVisible) {\n props.afterPopupVisibleChange(state.popupVisible);\n }\n });\n if (this.isClickToHide()) {\n if (state.popupVisible) {\n if (!this.clickOutsideHandler) {\n this.clickOutsideHandler = (0, _addEventListener2[\"default\"])(document, 'mousedown', this.onDocumentClick);\n this.touchOutsideHandler = (0, _addEventListener2[\"default\"])(document, 'touchstart', this.onDocumentClick);\n }\n return;\n }\n }\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.touchOutsideHandler.remove();\n this.clickOutsideHandler = null;\n this.touchOutsideHandler = null;\n }\n },\n componentWillUnmount: function componentWillUnmount() {\n this.clearDelayTimer();\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.touchOutsideHandler.remove();\n this.clickOutsideHandler = null;\n this.touchOutsideHandler = null;\n }\n },\n onMouseEnter: function onMouseEnter(e) {\n this.fireEvents('onMouseEnter', e);\n this.delaySetPopupVisible(true, this.props.mouseEnterDelay);\n },\n onMouseLeave: function onMouseLeave(e) {\n this.fireEvents('onMouseLeave', e);\n this.delaySetPopupVisible(false, this.props.mouseLeaveDelay);\n },\n onPopupMouseEnter: function onPopupMouseEnter() {\n this.clearDelayTimer();\n },\n onPopupMouseLeave: function onPopupMouseLeave(e) {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && this._component && (0, _contains2[\"default\"])(this._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n this.delaySetPopupVisible(false, this.props.mouseLeaveDelay);\n },\n onFocus: function onFocus(e) {\n this.fireEvents('onFocus', e);\n // incase focusin and focusout\n this.clearDelayTimer();\n if (this.isFocusToShow()) {\n this.focusTime = Date.now();\n this.delaySetPopupVisible(true, this.props.focusDelay);\n }\n },\n onMouseDown: function onMouseDown(e) {\n this.fireEvents('onMouseDown', e);\n this.preClickTime = Date.now();\n },\n onTouchStart: function onTouchStart(e) {\n this.fireEvents('onTouchStart', e);\n this.preTouchTime = Date.now();\n },\n onBlur: function onBlur(e) {\n this.fireEvents('onBlur', e);\n this.clearDelayTimer();\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.props.blurDelay);\n }\n },\n onClick: function onClick(event) {\n this.fireEvents('onClick', event);\n // focus will trigger click\n if (this.focusTime) {\n var preTime = void 0;\n if (this.preClickTime && this.preTouchTime) {\n preTime = Math.min(this.preClickTime, this.preTouchTime);\n } else if (this.preClickTime) {\n preTime = this.preClickTime;\n } else if (this.preTouchTime) {\n preTime = this.preTouchTime;\n }\n if (Math.abs(preTime - this.focusTime) < 20) {\n return;\n }\n this.focusTime = 0;\n }\n this.preClickTime = 0;\n this.preTouchTime = 0;\n event.preventDefault();\n var nextVisible = !this.state.popupVisible;\n if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n this.setPopupVisible(!this.state.popupVisible);\n }\n },\n onDocumentClick: function onDocumentClick(event) {\n var target = event.target;\n var root = (0, _reactDom.findDOMNode)(this);\n var popupNode = this.getPopupDomNode();\n if (!(0, _contains2[\"default\"])(root, target) && !(0, _contains2[\"default\"])(popupNode, target)) {\n this.setPopupVisible(false);\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n // for test\n if (this._component) {\n return this._component.isMounted() ? this._component.getPopupDomNode() : null;\n }\n return null;\n },\n getRootDomNode: function getRootDomNode() {\n return _reactDom2[\"default\"].findDOMNode(this);\n },\n getPopupClassNameFromAlign: function getPopupClassNameFromAlign(align) {\n var className = [];\n var props = this.props;\n var popupPlacement = props.popupPlacement;\n var builtinPlacements = props.builtinPlacements;\n var prefixCls = props.prefixCls;\n\n if (popupPlacement && builtinPlacements) {\n className.push((0, _utils.getPopupClassNameFromAlign)(builtinPlacements, prefixCls, align));\n }\n if (props.getPopupClassNameFromAlign) {\n className.push(props.getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n },\n getPopupAlign: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement;\n var popupAlign = props.popupAlign;\n var builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return (0, _utils.getAlignFromPlacement)(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n },\n setPopupVisible: function setPopupVisible(popupVisible) {\n this.clearDelayTimer();\n if (this.state.popupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible\n });\n }\n this.props.onPopupVisibleChange(popupVisible);\n }\n },\n delaySetPopupVisible: function delaySetPopupVisible(visible, delayS) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n this.delayTimer = setTimeout(function () {\n _this2.setPopupVisible(visible);\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible);\n }\n },\n clearDelayTimer: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n },\n createTwoChains: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n if (childPros[event] && props[event]) {\n return this['fire' + event];\n }\n return childPros[event] || props[event];\n },\n isClickToShow: function isClickToShow() {\n var _props = this.props;\n var action = _props.action;\n var showAction = _props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n },\n isClickToHide: function isClickToHide() {\n var _props2 = this.props;\n var action = _props2.action;\n var hideAction = _props2.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n },\n isMouseEnterToShow: function isMouseEnterToShow() {\n var _props3 = this.props;\n var action = _props3.action;\n var showAction = _props3.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n },\n isMouseLeaveToHide: function isMouseLeaveToHide() {\n var _props4 = this.props;\n var action = _props4.action;\n var hideAction = _props4.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n },\n isFocusToShow: function isFocusToShow() {\n var _props5 = this.props;\n var action = _props5.action;\n var showAction = _props5.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n },\n isBlurToHide: function isBlurToHide() {\n var _props6 = this.props;\n var action = _props6.action;\n var hideAction = _props6.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n },\n forcePopupAlign: function forcePopupAlign() {\n if (this.state.popupVisible && this.popupInstance && this.popupInstance.alignInstance) {\n this.popupInstance.alignInstance.forceAlign();\n }\n },\n fireEvents: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(e);\n }\n var callback = this.props[type];\n if (callback) {\n callback(e);\n }\n },\n render: function render() {\n var props = this.props;\n var children = props.children;\n var child = _react2[\"default\"].Children.only(children);\n var newChildProps = {};\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n }\n\n return _react2[\"default\"].cloneElement(child, newChildProps);\n }\n});\n\nexports[\"default\"] = Trigger;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-trigger/lib/Trigger.js\n ** module id = 182\n ** module chunks = 4\n **/","\"use strict\";\n\nmodule.exports = function contains(root, n) {\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n\n return false;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-util/lib/Dom/contains.js\n ** module id = 183\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = addEventListenerWrap;\n\nvar _addDomEventListener = require('add-dom-event-listener');\n\nvar _addDomEventListener2 = _interopRequireDefault(_addDomEventListener);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction addEventListenerWrap(target, eventType, cb) {\n /* eslint camelcase: 2 */\n var callback = _reactDom2[\"default\"].unstable_batchedUpdates ? function run(e) {\n _reactDom2[\"default\"].unstable_batchedUpdates(cb, e);\n } : cb;\n return (0, _addDomEventListener2[\"default\"])(target, eventType, callback);\n}\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-util/lib/Dom/addEventListener.js\n ** module id = 184\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n target.addEventListener(eventType, wrapCallback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/add-dom-event-listener/lib/index.js\n ** module id = 185\n ** module chunks = 4\n **/","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/add-dom-event-listener/lib/EventObject.js\n ** module id = 186\n ** module chunks = 4\n **/","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/add-dom-event-listener/lib/EventBaseObject.js\n ** module id = 187\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _rcAlign = require('rc-align');\n\nvar _rcAlign2 = _interopRequireDefault(_rcAlign);\n\nvar _rcAnimate = require('rc-animate');\n\nvar _rcAnimate2 = _interopRequireDefault(_rcAnimate);\n\nvar _PopupInner = require('./PopupInner');\n\nvar _PopupInner2 = _interopRequireDefault(_PopupInner);\n\nvar _LazyRenderBox = require('./LazyRenderBox');\n\nvar _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Popup = _react2[\"default\"].createClass({\n displayName: 'Popup',\n\n propTypes: {\n visible: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n getClassNameFromAlign: _react.PropTypes.func,\n onAlign: _react.PropTypes.func,\n getRootDomNode: _react.PropTypes.func,\n onMouseEnter: _react.PropTypes.func,\n align: _react.PropTypes.any,\n destroyPopupOnHide: _react.PropTypes.bool,\n className: _react.PropTypes.string,\n prefixCls: _react.PropTypes.string,\n onMouseLeave: _react.PropTypes.func\n },\n\n componentDidMount: function componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n },\n onAlign: function onAlign(popupDomNode, align) {\n var props = this.props;\n var alignClassName = props.getClassNameFromAlign(props.align);\n var currentAlignClassName = props.getClassNameFromAlign(align);\n if (alignClassName !== currentAlignClassName) {\n this.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = this.getClassName(currentAlignClassName);\n }\n props.onAlign(popupDomNode, align);\n },\n getPopupDomNode: function getPopupDomNode() {\n return _reactDom2[\"default\"].findDOMNode(this.refs.popup);\n },\n getTarget: function getTarget() {\n return this.props.getRootDomNode();\n },\n getMaskTransitionName: function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n },\n getTransitionName: function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n },\n getClassName: function getClassName(currentAlignClassName) {\n return this.props.prefixCls + ' ' + this.props.className + ' ' + currentAlignClassName;\n },\n getPopupElement: function getPopupElement() {\n var props = this.props;\n var align = props.align;\n var style = props.style;\n var visible = props.visible;\n var prefixCls = props.prefixCls;\n var destroyPopupOnHide = props.destroyPopupOnHide;\n\n var className = this.getClassName(this.currentAlignClassName || props.getClassNameFromAlign(align));\n var hiddenClassName = prefixCls + '-hidden';\n if (!visible) {\n this.currentAlignClassName = null;\n }\n var newStyle = _extends({}, style, this.getZIndexStyle());\n var popupInnerProps = {\n className: className,\n prefixCls: prefixCls,\n ref: 'popup',\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n style: newStyle\n };\n if (destroyPopupOnHide) {\n return _react2[\"default\"].createElement(\n _rcAnimate2[\"default\"],\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName()\n },\n visible ? _react2[\"default\"].createElement(\n _rcAlign2[\"default\"],\n {\n target: this.getTarget,\n key: 'popup',\n ref: this.saveAlign,\n monitorWindowResize: true,\n align: align,\n onAlign: this.onAlign\n },\n _react2[\"default\"].createElement(\n _PopupInner2[\"default\"],\n _extends({\n visible: true\n }, popupInnerProps),\n props.children\n )\n ) : null\n );\n }\n return _react2[\"default\"].createElement(\n _rcAnimate2[\"default\"],\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName(),\n showProp: 'xVisible'\n },\n _react2[\"default\"].createElement(\n _rcAlign2[\"default\"],\n {\n target: this.getTarget,\n key: 'popup',\n ref: this.saveAlign,\n monitorWindowResize: true,\n xVisible: visible,\n childrenProps: { visible: 'xVisible' },\n disabled: !visible,\n align: align,\n onAlign: this.onAlign\n },\n _react2[\"default\"].createElement(\n _PopupInner2[\"default\"],\n _extends({\n hiddenClassName: hiddenClassName\n }, popupInnerProps),\n props.children\n )\n )\n );\n },\n getZIndexStyle: function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n },\n getMaskElement: function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = _react2[\"default\"].createElement(_LazyRenderBox2[\"default\"], {\n style: this.getZIndexStyle(),\n key: 'mask',\n className: props.prefixCls + '-mask',\n hiddenClassName: props.prefixCls + '-mask-hidden',\n visible: props.visible\n });\n if (maskTransition) {\n maskElement = _react2[\"default\"].createElement(\n _rcAnimate2[\"default\"],\n {\n key: 'mask',\n showProp: 'visible',\n transitionAppear: true,\n component: '',\n transitionName: maskTransition\n },\n maskElement\n );\n }\n }\n return maskElement;\n },\n saveAlign: function saveAlign(align) {\n this.alignInstance = align;\n },\n render: function render() {\n return _react2[\"default\"].createElement(\n 'div',\n null,\n this.getMaskElement(),\n this.getPopupElement()\n );\n }\n});\n\nexports[\"default\"] = Popup;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-trigger/lib/Popup.js\n ** module id = 188\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Align = require('./Align');\n\nvar _Align2 = _interopRequireDefault(_Align);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports[\"default\"] = _Align2[\"default\"]; // export this package's api\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-align/lib/index.js\n ** module id = 189\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _domAlign = require('dom-align');\n\nvar _domAlign2 = _interopRequireDefault(_domAlign);\n\nvar _addEventListener = require('rc-util/lib/Dom/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _isWindow = require('./isWindow');\n\nvar _isWindow2 = _interopRequireDefault(_isWindow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\nvar Align = _react2[\"default\"].createClass({\n displayName: 'Align',\n\n propTypes: {\n childrenProps: _react.PropTypes.object,\n align: _react.PropTypes.object.isRequired,\n target: _react.PropTypes.func,\n onAlign: _react.PropTypes.func,\n monitorBufferTime: _react.PropTypes.number,\n monitorWindowResize: _react.PropTypes.bool,\n disabled: _react.PropTypes.bool,\n children: _react.PropTypes.any\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n target: function target() {\n return window;\n },\n onAlign: function onAlign() {},\n\n monitorBufferTime: 50,\n monitorWindowResize: false,\n disabled: false\n };\n },\n componentDidMount: function componentDidMount() {\n var props = this.props;\n // if parent ref not attached .... use document.getElementById\n this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n },\n componentDidUpdate: function componentDidUpdate(prevProps) {\n var reAlign = false;\n var props = this.props;\n\n if (!props.disabled) {\n if (prevProps.disabled || prevProps.align !== props.align) {\n reAlign = true;\n } else {\n var lastTarget = prevProps.target();\n var currentTarget = props.target();\n if ((0, _isWindow2[\"default\"])(lastTarget) && (0, _isWindow2[\"default\"])(currentTarget)) {\n reAlign = false;\n } else if (lastTarget !== currentTarget) {\n reAlign = true;\n }\n }\n }\n\n if (reAlign) {\n this.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n this.startMonitorWindowResize();\n } else {\n this.stopMonitorWindowResize();\n }\n },\n componentWillUnmount: function componentWillUnmount() {\n this.stopMonitorWindowResize();\n },\n startMonitorWindowResize: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);\n this.resizeHandler = (0, _addEventListener2[\"default\"])(window, 'resize', this.bufferMonitor);\n }\n },\n stopMonitorWindowResize: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n },\n forceAlign: function forceAlign() {\n var props = this.props;\n if (!props.disabled) {\n var source = _reactDom2[\"default\"].findDOMNode(this);\n props.onAlign(source, (0, _domAlign2[\"default\"])(source, props.target(), props.align));\n }\n },\n render: function render() {\n var _props = this.props;\n var childrenProps = _props.childrenProps;\n var children = _props.children;\n\n var child = _react2[\"default\"].Children.only(children);\n if (childrenProps) {\n var newProps = {};\n for (var prop in childrenProps) {\n if (childrenProps.hasOwnProperty(prop)) {\n newProps[prop] = this.props[childrenProps[prop]];\n }\n }\n return _react2[\"default\"].cloneElement(child, newProps);\n }\n return child;\n }\n});\n\nexports[\"default\"] = Align;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-align/lib/Align.js\n ** module id = 190\n ** module chunks = 4\n **/","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _getOffsetParent = require('./getOffsetParent');\n\nvar _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);\n\nvar _getVisibleRectForElement = require('./getVisibleRectForElement');\n\nvar _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);\n\nvar _adjustForViewport = require('./adjustForViewport');\n\nvar _adjustForViewport2 = _interopRequireDefault(_adjustForViewport);\n\nvar _getRegion = require('./getRegion');\n\nvar _getRegion2 = _interopRequireDefault(_getRegion);\n\nvar _getElFuturePos = require('./getElFuturePos');\n\nvar _getElFuturePos2 = _interopRequireDefault(_getElFuturePos);\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n _utils2['default'].each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n = undefined;\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\nfunction domAlign(el, refNode, align) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var target = align.target || refNode;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n\n var fail = 0;\n // 当前节点可以被放置的显示区域\n var visibleRect = (0, _getVisibleRectForElement2['default'])(source);\n // 当前节点所占的区域, left/top/width/height\n var elRegion = (0, _getRegion2['default'])(source);\n // 参照节点所占的区域, left/top/width/height\n var refNodeRegion = (0, _getRegion2['default'])(target);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, refNodeRegion);\n // 当前节点将要被放置的位置\n var elFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, points, offset, targetOffset);\n // 当前节点将要所处的区域\n var newElRegion = _utils2['default'].merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (visibleRect && (overflow.adjustX || overflow.adjustY)) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/ig, {\n l: 'r',\n r: 'l'\n });\n // 偏移量也反下\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[tb]/ig, {\n t: 'b',\n b: 't'\n });\n // 偏移量也反下\n var newOffset = flipOffset(offset, 1);\n var newTargetOffset = flipOffset(targetOffset, 1);\n var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, points, offset, targetOffset);\n _utils2['default'].mix(newElRegion, elFuturePos);\n }\n\n // 检查反下后的位置是否可以放下了\n // 如果仍然放不下只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isFailX(elFuturePos, elRegion, visibleRect);\n\n newOverflowCfg.adjustY = overflow.adjustY && isFailY(elFuturePos, elRegion, visibleRect);\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = (0, _adjustForViewport2['default'])(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n _utils2['default'].css(source, 'width', source.width() + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n _utils2['default'].css(source, 'height', source.height() + newElRegion.height - elRegion.height);\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // http://localhost:8888/kissy/src/overlay/demo/other/relative_align/align.html\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n _utils2['default'].offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom\n });\n\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n\ndomAlign.__getOffsetParent = _getOffsetParent2['default'];\n\ndomAlign.__getVisibleRectForElement = _getVisibleRectForElement2['default'];\n\nexports['default'] = domAlign;\n\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/index.js\n ** module id = 191\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nvar getComputedStyleX = undefined;\n\nfunction css(el, name, v) {\n var value = v;\n if (typeof name === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = value + 'px';\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box = undefined;\n var x = undefined;\n var y = undefined;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return { left: x, top: y };\n}\n\nfunction getScroll(w, top) {\n var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = elem.ownerDocument;\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = presetH + 'px';\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = presetV + 'px';\n }\n var old = getOffset(elem);\n var ret = {};\n var key = undefined;\n for (key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n if (dir === key) {\n ret[dir] = preset + offset[key] - old[key];\n } else {\n ret[dir] = preset + old[key] - offset[key];\n }\n }\n }\n css(elem, ret);\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name = undefined;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop = undefined;\n var j = undefined;\n var i = undefined;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = undefined;\n if (prop === 'border') {\n cssProp = prop + which[i] + 'Width';\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n domUtils['doc' + name] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement['scroll' + name],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body['scroll' + name], domUtils['viewport' + name](d));\n };\n\n domUtils['viewport' + name] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = 'client' + name;\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n var extra = ex;\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem, computedStyle);\n var cssBoxValue = 0;\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle));\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = { position: 'absolute', visibility: 'hidden', display: 'block' };\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var val = undefined;\n var elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils['outer' + first] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i = undefined;\n var ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n for (var i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\n\nmix(utils, domUtils);\n\nexports['default'] = utils;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/utils.js\n ** module id = 192\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nfunction getOffsetParent(element) {\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n var doc = element.ownerDocument;\n var body = doc.body;\n var parent = undefined;\n var positionStyle = _utils2['default'].css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : element.parentNode;\n }\n\n for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {\n positionStyle = _utils2['default'].css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexports['default'] = getOffsetParent;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/getOffsetParent.js\n ** module id = 193\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _getOffsetParent = require('./getOffsetParent');\n\nvar _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = (0, _getOffsetParent2['default'])(element);\n var scrollX = undefined;\n var scrollY = undefined;\n var winSize = undefined;\n var doc = element.ownerDocument;\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && _utils2['default'].css(el, 'overflow') !== 'visible') {\n var pos = _utils2['default'].offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = (0, _getOffsetParent2['default'])(el);\n }\n\n // Clip by window's viewport.\n scrollX = _utils2['default'].getWindowScrollLeft(win);\n scrollY = _utils2['default'].getWindowScrollTop(win);\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n winSize = {\n width: _utils2['default'].viewportWidth(win),\n height: _utils2['default'].viewportHeight(win)\n };\n visibleRect.right = Math.min(visibleRect.right, scrollX + winSize.width);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + winSize.height);\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nexports['default'] = getVisibleRectForElement;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/getVisibleRectForElement.js\n ** module id = 194\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = _utils2['default'].clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return _utils2['default'].mix(pos, size);\n}\n\nexports['default'] = adjustForViewport;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/adjustForViewport.js\n ** module id = 195\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction getRegion(node) {\n var offset = undefined;\n var w = undefined;\n var h = undefined;\n if (!_utils2['default'].isWindow(node) && node.nodeType !== 9) {\n offset = _utils2['default'].offset(node);\n w = _utils2['default'].outerWidth(node);\n h = _utils2['default'].outerHeight(node);\n } else {\n var win = _utils2['default'].getWindow(node);\n offset = {\n left: _utils2['default'].getWindowScrollLeft(win),\n top: _utils2['default'].getWindowScrollTop(win)\n };\n w = _utils2['default'].viewportWidth(win);\n h = _utils2['default'].viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexports['default'] = getRegion;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/getRegion.js\n ** module id = 196\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _getAlignOffset = require('./getAlignOffset');\n\nvar _getAlignOffset2 = _interopRequireDefault(_getAlignOffset);\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var xy = undefined;\n var diff = undefined;\n var p1 = undefined;\n var p2 = undefined;\n\n xy = {\n left: elRegion.left,\n top: elRegion.top\n };\n\n p1 = (0, _getAlignOffset2['default'])(refNodeRegion, points[1]);\n p2 = (0, _getAlignOffset2['default'])(elRegion, points[0]);\n\n diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: xy.left - diff[0] + offset[0] - targetOffset[0],\n top: xy.top - diff[1] + offset[1] - targetOffset[1]\n };\n}\n\nexports['default'] = getElFuturePos;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/getElFuturePos.js\n ** module id = 197\n ** module chunks = 4\n **/","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = undefined;\n var y = undefined;\n\n x = region.left;\n y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nexports['default'] = getAlignOffset;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dom-align/lib/getAlignOffset.js\n ** module id = 198\n ** module chunks = 4\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isWindow;\nfunction isWindow(obj) {\n /* eslint no-eq-null: 0 */\n /* eslint eqeqeq: 0 */\n return obj != null && obj == obj.window;\n}\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-align/lib/isWindow.js\n ** module id = 199\n ** module chunks = 4\n **/","'use strict';\n\n// export this package's api\nmodule.exports = require('./Animate');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-animate/lib/index.js\n ** module id = 200\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _ChildrenUtils = require('./ChildrenUtils');\n\nvar _AnimateChild = require('./AnimateChild');\n\nvar _AnimateChild2 = _interopRequireDefault(_AnimateChild);\n\nvar _util = require('./util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar defaultKey = 'rc_animate_' + Date.now();\n\n\nfunction getChildrenFromProps(props) {\n var children = props.children;\n if (_react2[\"default\"].isValidElement(children)) {\n if (!children.key) {\n return _react2[\"default\"].cloneElement(children, {\n key: defaultKey\n });\n }\n }\n return children;\n}\n\nfunction noop() {}\n\nvar Animate = _react2[\"default\"].createClass({\n displayName: 'Animate',\n\n propTypes: {\n component: _react2[\"default\"].PropTypes.any,\n animation: _react2[\"default\"].PropTypes.object,\n transitionName: _react2[\"default\"].PropTypes.oneOfType([_react2[\"default\"].PropTypes.string, _react2[\"default\"].PropTypes.object]),\n transitionEnter: _react2[\"default\"].PropTypes.bool,\n transitionAppear: _react2[\"default\"].PropTypes.bool,\n exclusive: _react2[\"default\"].PropTypes.bool,\n transitionLeave: _react2[\"default\"].PropTypes.bool,\n onEnd: _react2[\"default\"].PropTypes.func,\n onEnter: _react2[\"default\"].PropTypes.func,\n onLeave: _react2[\"default\"].PropTypes.func,\n onAppear: _react2[\"default\"].PropTypes.func,\n showProp: _react2[\"default\"].PropTypes.string\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n animation: {},\n component: 'span',\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n onEnd: noop,\n onEnter: noop,\n onLeave: noop,\n onAppear: noop\n };\n },\n getInitialState: function getInitialState() {\n this.currentlyAnimatingKeys = {};\n this.keysToEnter = [];\n this.keysToLeave = [];\n return {\n children: (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(this.props))\n };\n },\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n var showProp = this.props.showProp;\n var children = this.state.children;\n if (showProp) {\n children = children.filter(function (child) {\n return !!child.props[showProp];\n });\n }\n children.forEach(function (child) {\n if (child) {\n _this.performAppear(child.key);\n }\n });\n },\n componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n this.nextProps = nextProps;\n var nextChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(nextProps));\n var props = this.props;\n // exclusive needs immediate response\n if (props.exclusive) {\n Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {\n _this2.stop(key);\n });\n }\n var showProp = props.showProp;\n var currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n // last props children if exclusive\n var currentChildren = props.exclusive ? (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) : this.state.children;\n // in case destroy in showProp mode\n var newChildren = [];\n if (showProp) {\n currentChildren.forEach(function (currentChild) {\n var nextChild = currentChild && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, currentChild.key);\n var newChild = void 0;\n if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {\n newChild = _react2[\"default\"].cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));\n } else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n });\n nextChildren.forEach(function (nextChild) {\n if (!nextChild || !(0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, nextChild.key)) {\n newChildren.push(nextChild);\n }\n });\n } else {\n newChildren = (0, _ChildrenUtils.mergeChildren)(currentChildren, nextChildren);\n }\n\n // need render to avoid update\n this.setState({\n children: newChildren\n });\n\n nextChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasPrev = child && (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);\n if (showProp) {\n var showInNext = child.props[showProp];\n if (hasPrev) {\n var showInNow = (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);\n if (!showInNow && showInNext) {\n _this2.keysToEnter.push(key);\n }\n } else if (showInNext) {\n _this2.keysToEnter.push(key);\n }\n } else if (!hasPrev) {\n _this2.keysToEnter.push(key);\n }\n });\n\n currentChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasNext = child && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, key);\n if (showProp) {\n var showInNow = child.props[showProp];\n if (hasNext) {\n var showInNext = (0, _ChildrenUtils.findShownChildInChildrenByKey)(nextChildren, key, showProp);\n if (!showInNext && showInNow) {\n _this2.keysToLeave.push(key);\n }\n } else if (showInNow) {\n _this2.keysToLeave.push(key);\n }\n } else if (!hasNext) {\n _this2.keysToLeave.push(key);\n }\n });\n },\n componentDidUpdate: function componentDidUpdate() {\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n },\n performEnter: function performEnter(key) {\n // may already remove by exclusive\n if (this.refs[key]) {\n this.currentlyAnimatingKeys[key] = true;\n this.refs[key].componentWillEnter(this.handleDoneAdding.bind(this, key, 'enter'));\n }\n },\n performAppear: function performAppear(key) {\n if (this.refs[key]) {\n this.currentlyAnimatingKeys[key] = true;\n this.refs[key].componentWillAppear(this.handleDoneAdding.bind(this, key, 'appear'));\n }\n },\n handleDoneAdding: function handleDoneAdding(key, type) {\n var props = this.props;\n delete this.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== this.nextProps) {\n return;\n }\n var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));\n if (!this.isValidChildByKey(currentChildren, key)) {\n // exclusive will not need this\n this.performLeave(key);\n } else {\n if (type === 'appear') {\n if (_util2[\"default\"].allowAppearCallback(props)) {\n props.onAppear(key);\n props.onEnd(key, true);\n }\n } else {\n if (_util2[\"default\"].allowEnterCallback(props)) {\n props.onEnter(key);\n props.onEnd(key, true);\n }\n }\n }\n },\n performLeave: function performLeave(key) {\n // may already remove by exclusive\n if (this.refs[key]) {\n this.currentlyAnimatingKeys[key] = true;\n this.refs[key].componentWillLeave(this.handleDoneLeaving.bind(this, key));\n }\n },\n handleDoneLeaving: function handleDoneLeaving(key) {\n var props = this.props;\n delete this.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== this.nextProps) {\n return;\n }\n var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));\n // in case state change is too fast\n if (this.isValidChildByKey(currentChildren, key)) {\n this.performEnter(key);\n } else {\n var end = function end() {\n if (_util2[\"default\"].allowLeaveCallback(props)) {\n props.onLeave(key);\n props.onEnd(key, false);\n }\n };\n /* eslint react/no-is-mounted:0 */\n if (this.isMounted() && !(0, _ChildrenUtils.isSameChildren)(this.state.children, currentChildren, props.showProp)) {\n this.setState({\n children: currentChildren\n }, end);\n } else {\n end();\n }\n }\n },\n isValidChildByKey: function isValidChildByKey(currentChildren, key) {\n var showProp = this.props.showProp;\n if (showProp) {\n return (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);\n }\n return (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);\n },\n stop: function stop(key) {\n delete this.currentlyAnimatingKeys[key];\n var component = this.refs[key];\n if (component) {\n component.stop();\n }\n },\n render: function render() {\n var props = this.props;\n this.nextProps = props;\n var stateChildren = this.state.children;\n var children = null;\n if (stateChildren) {\n children = stateChildren.map(function (child) {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for <rc-animate> children');\n }\n return _react2[\"default\"].createElement(\n _AnimateChild2[\"default\"],\n {\n key: child.key,\n ref: child.key,\n animation: props.animation,\n transitionName: props.transitionName,\n transitionEnter: props.transitionEnter,\n transitionAppear: props.transitionAppear,\n transitionLeave: props.transitionLeave\n },\n child\n );\n });\n }\n var Component = props.component;\n if (Component) {\n var passedProps = props;\n if (typeof Component === 'string') {\n passedProps = {\n className: props.className,\n style: props.style\n };\n }\n return _react2[\"default\"].createElement(\n Component,\n passedProps,\n children\n );\n }\n return children[0] || null;\n }\n});\n\nexports[\"default\"] = Animate;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-animate/lib/Animate.js\n ** module id = 201\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArrayChildren = toArrayChildren;\nexports.findChildInChildrenByKey = findChildInChildrenByKey;\nexports.findShownChildInChildrenByKey = findShownChildInChildrenByKey;\nexports.findHiddenChildInChildrenByKey = findHiddenChildInChildrenByKey;\nexports.isSameChildren = isSameChildren;\nexports.mergeChildren = mergeChildren;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction toArrayChildren(children) {\n var ret = [];\n _react2[\"default\"].Children.forEach(children, function (child) {\n ret.push(child);\n });\n return ret;\n}\n\nfunction findChildInChildrenByKey(children, key) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (ret) {\n return;\n }\n if (child && child.key === key) {\n ret = child;\n }\n });\n }\n return ret;\n}\n\nfunction findShownChildInChildrenByKey(children, key, showProp) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (child && child.key === key && child.props[showProp]) {\n if (ret) {\n throw new Error('two child with same key for <rc-animate> children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n\nfunction findHiddenChildInChildrenByKey(children, key, showProp) {\n var found = 0;\n if (children) {\n children.forEach(function (child) {\n if (found) {\n return;\n }\n found = child && child.key === key && !child.props[showProp];\n });\n }\n return found;\n}\n\nfunction isSameChildren(c1, c2, showProp) {\n var same = c1.length === c2.length;\n if (same) {\n c1.forEach(function (child, index) {\n var child2 = c2[index];\n if (child && child2) {\n if (child && !child2 || !child && child2) {\n same = false;\n } else if (child.key !== child2.key) {\n same = false;\n } else if (showProp && child.props[showProp] !== child2.props[showProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\n\nfunction mergeChildren(prev, next) {\n var ret = [];\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextChildrenPending = {};\n var pendingChildren = [];\n prev.forEach(function (child) {\n if (child && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n } else {\n pendingChildren.push(child);\n }\n });\n\n next.forEach(function (child) {\n if (child && nextChildrenPending.hasOwnProperty(child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n\n ret = ret.concat(pendingChildren);\n\n return ret;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-animate/lib/ChildrenUtils.js\n ** module id = 202\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _cssAnimation = require('css-animation');\n\nvar _cssAnimation2 = _interopRequireDefault(_cssAnimation);\n\nvar _util = require('./util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave'\n};\n\nvar AnimateChild = _react2[\"default\"].createClass({\n displayName: 'AnimateChild',\n\n propTypes: {\n children: _react2[\"default\"].PropTypes.any\n },\n\n componentWillUnmount: function componentWillUnmount() {\n this.stop();\n },\n componentWillEnter: function componentWillEnter(done) {\n if (_util2[\"default\"].isEnterSupported(this.props)) {\n this.transition('enter', done);\n } else {\n done();\n }\n },\n componentWillAppear: function componentWillAppear(done) {\n if (_util2[\"default\"].isAppearSupported(this.props)) {\n this.transition('appear', done);\n } else {\n done();\n }\n },\n componentWillLeave: function componentWillLeave(done) {\n if (_util2[\"default\"].isLeaveSupported(this.props)) {\n this.transition('leave', done);\n } else {\n // always sync, do not interupt with react component life cycle\n // update hidden -> animate hidden ->\n // didUpdate -> animate leave -> unmount (if animate is none)\n done();\n }\n },\n transition: function transition(animationType, finishCallback) {\n var _this = this;\n\n var node = _reactDom2[\"default\"].findDOMNode(this);\n var props = this.props;\n var transitionName = props.transitionName;\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n this.stop();\n var end = function end() {\n _this.stopper = null;\n finishCallback();\n };\n if ((_cssAnimation.isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {\n var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;\n var activeName = name + '-active';\n if (nameIsObj && transitionName[animationType + 'Active']) {\n activeName = transitionName[animationType + 'Active'];\n }\n this.stopper = (0, _cssAnimation2[\"default\"])(node, {\n name: name,\n active: activeName\n }, end);\n } else {\n this.stopper = props.animation[animationType](node, end);\n }\n },\n stop: function stop() {\n var stopper = this.stopper;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n },\n render: function render() {\n return this.props.children;\n }\n});\n\nexports[\"default\"] = AnimateChild;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-animate/lib/AnimateChild.js\n ** module id = 203\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _Event = require('./Event');\n\nvar _Event2 = _interopRequireDefault(_Event);\n\nvar _componentClasses = require('component-classes');\n\nvar _componentClasses2 = _interopRequireDefault(_componentClasses);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isCssAnimationSupported = _Event2[\"default\"].endEvents.length !== 0;\n\n\nvar capitalPrefixes = ['Webkit', 'Moz', 'O',\n// ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n var style = window.getComputedStyle(node);\n\n var ret = '';\n for (var i = 0; i < prefixes.length; i++) {\n ret = style.getPropertyValue(prefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n if (isCssAnimationSupported) {\n var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n // sometimes, browser bug\n node.rcEndAnimTimeout = setTimeout(function () {\n node.rcEndAnimTimeout = null;\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }, time * 1000 + 200);\n }\n}\n\nfunction clearBrowserBugTimeout(node) {\n if (node.rcEndAnimTimeout) {\n clearTimeout(node.rcEndAnimTimeout);\n node.rcEndAnimTimeout = null;\n }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n var className = nameIsObj ? transitionName.name : transitionName;\n var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';\n var end = endCallback;\n var start = void 0;\n var active = void 0;\n var nodeClasses = (0, _componentClasses2[\"default\"])(node);\n\n if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n end = endCallback.end;\n start = endCallback.start;\n active = endCallback.active;\n }\n\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n nodeClasses.remove(className);\n nodeClasses.remove(activeClassName);\n\n _Event2[\"default\"].removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional end is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (end) {\n end();\n }\n };\n\n _Event2[\"default\"].addEndEventListener(node, node.rcEndListener);\n\n if (start) {\n start();\n }\n nodeClasses.add(className);\n\n node.rcAnimTimeout = setTimeout(function () {\n node.rcAnimTimeout = null;\n nodeClasses.add(activeClassName);\n if (active) {\n setTimeout(active, 0);\n }\n fixBrowserByTimeout(node);\n // 30ms for firefox\n }, 30);\n\n return {\n stop: function stop() {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }\n };\n};\n\ncssAnimation.style = function (node, style, callback) {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n _Event2[\"default\"].removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (callback) {\n callback();\n }\n };\n\n _Event2[\"default\"].addEndEventListener(node, node.rcEndListener);\n\n node.rcAnimTimeout = setTimeout(function () {\n for (var s in style) {\n if (style.hasOwnProperty(s)) {\n node.style[s] = style[s];\n }\n }\n node.rcAnimTimeout = null;\n fixBrowserByTimeout(node);\n }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n var property = p;\n var v = value;\n if (value === undefined) {\n v = property;\n property = '';\n }\n property = property || '';\n capitalPrefixes.forEach(function (prefix) {\n node.style[prefix + 'Transition' + property] = v;\n });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\n\nexports[\"default\"] = cssAnimation;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-animation/lib/index.js\n ** module id = 204\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete EVENT_NAME_MAP.transitionend.transition;\n }\n\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n endEvents.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n\n\n endEvents: endEvents,\n\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexports[\"default\"] = TransitionEvents;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-animation/lib/Event.js\n ** module id = 205\n ** module chunks = 4\n **/","/**\n * Module dependencies.\n */\n\ntry {\n var index = require('indexof');\n} catch (err) {\n var index = require('component-indexof');\n}\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re){\n var arr = this.array();\n for (var i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list\n ? this.list.contains(name)\n : !! ~index(this.array(), name);\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/component-classes/index.js\n ** module id = 206\n ** module chunks = 4\n **/","module.exports = function(arr, obj){\n if (arr.indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/component-indexof/index.js\n ** module id = 207\n ** module chunks = 4\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar util = {\n isAppearSupported: function isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || props.animation.appear;\n },\n isEnterSupported: function isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || props.animation.enter;\n },\n isLeaveSupported: function isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || props.animation.leave;\n },\n allowAppearCallback: function allowAppearCallback(props) {\n return props.transitionAppear || props.animation.appear;\n },\n allowEnterCallback: function allowEnterCallback(props) {\n return props.transitionEnter || props.animation.enter;\n },\n allowLeaveCallback: function allowLeaveCallback(props) {\n return props.transitionLeave || props.animation.leave;\n }\n};\nexports[\"default\"] = util;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-animate/lib/util.js\n ** module id = 208\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _LazyRenderBox = require('./LazyRenderBox');\n\nvar _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar PopupInner = _react2[\"default\"].createClass({\n displayName: 'PopupInner',\n\n propTypes: {\n hiddenClassName: _react.PropTypes.string,\n className: _react.PropTypes.string,\n prefixCls: _react.PropTypes.string,\n onMouseEnter: _react.PropTypes.func,\n onMouseLeave: _react.PropTypes.func,\n children: _react.PropTypes.any\n },\n render: function render() {\n var props = this.props;\n var className = props.className;\n if (!props.visible) {\n className += ' ' + props.hiddenClassName;\n }\n return _react2[\"default\"].createElement(\n 'div',\n {\n className: className,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n style: props.style\n },\n _react2[\"default\"].createElement(\n _LazyRenderBox2[\"default\"],\n { className: props.prefixCls + '-content', visible: props.visible },\n props.children\n )\n );\n }\n});\n\nexports[\"default\"] = PopupInner;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-trigger/lib/PopupInner.js\n ** module id = 209\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar LazyRenderBox = _react2[\"default\"].createClass({\n displayName: 'LazyRenderBox',\n\n propTypes: {\n children: _react.PropTypes.any,\n className: _react.PropTypes.string,\n visible: _react.PropTypes.bool,\n hiddenClassName: _react.PropTypes.string\n },\n shouldComponentUpdate: function shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || nextProps.visible;\n },\n render: function render() {\n var _props = this.props;\n var hiddenClassName = _props.hiddenClassName;\n var visible = _props.visible;\n\n var props = _objectWithoutProperties(_props, ['hiddenClassName', 'visible']);\n\n if (hiddenClassName || _react2[\"default\"].Children.count(props.children) > 1) {\n if (!visible && hiddenClassName) {\n props.className += ' ' + hiddenClassName;\n }\n return _react2[\"default\"].createElement('div', props);\n }\n\n return _react2[\"default\"].Children.only(props.children);\n }\n});\n\nexports[\"default\"] = LazyRenderBox;\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-trigger/lib/LazyRenderBox.js\n ** module id = 210\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.getAlignFromPlacement = getAlignFromPlacement;\nexports.getPopupClassNameFromAlign = getPopupClassNameFromAlign;\nfunction isPointsEq(a1, a2) {\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nfunction getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\n\nfunction getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-trigger/lib/utils.js\n ** module id = 211\n ** module chunks = 4\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports[\"default\"] = getContainerRenderMixin;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction defaultGetContainer() {\n var container = document.createElement('div');\n document.body.appendChild(container);\n return container;\n}\n\nfunction getContainerRenderMixin(config) {\n var _config$autoMount = config.autoMount;\n var autoMount = _config$autoMount === undefined ? true : _config$autoMount;\n var _config$autoDestroy = config.autoDestroy;\n var autoDestroy = _config$autoDestroy === undefined ? true : _config$autoDestroy;\n var isVisible = config.isVisible;\n var getComponent = config.getComponent;\n var _config$getContainer = config.getContainer;\n var getContainer = _config$getContainer === undefined ? defaultGetContainer : _config$getContainer;\n\n\n var mixin = void 0;\n\n function _renderComponent(instance, componentArg, ready) {\n if (!isVisible || instance._component || isVisible(instance)) {\n if (!instance._container) {\n instance._container = getContainer(instance);\n }\n _reactDom2[\"default\"].unstable_renderSubtreeIntoContainer(instance, getComponent(instance, componentArg), instance._container, function callback() {\n instance._component = this;\n if (ready) {\n ready.call(this);\n }\n });\n }\n }\n\n if (autoMount) {\n mixin = _extends({}, mixin, {\n componentDidMount: function componentDidMount() {\n _renderComponent(this);\n },\n componentDidUpdate: function componentDidUpdate() {\n _renderComponent(this);\n }\n });\n }\n\n if (!autoMount || !autoDestroy) {\n mixin = _extends({}, mixin, {\n renderComponent: function renderComponent(componentArg, ready) {\n _renderComponent(this, componentArg, ready);\n }\n });\n }\n\n function _removeContainer(instance) {\n if (instance._container) {\n var container = instance._container;\n _reactDom2[\"default\"].unmountComponentAtNode(container);\n container.parentNode.removeChild(container);\n instance._container = null;\n }\n }\n\n if (autoDestroy) {\n mixin = _extends({}, mixin, {\n componentWillUnmount: function componentWillUnmount() {\n _removeContainer(this);\n }\n });\n } else {\n mixin = _extends({}, mixin, {\n removeContainer: function removeContainer() {\n _removeContainer(this);\n }\n });\n }\n\n return mixin;\n}\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/rc-util/lib/getContainerRenderMixin.js\n ** module id = 212\n ** module chunks = 4\n **/","import React, { PropTypes } from 'react';\nimport Header from './Header';\nimport Combobox from './Combobox';\nimport moment from 'moment';\nimport classNames from 'classnames';\n\nfunction noop() {\n}\n\nfunction generateOptions(length, disabledOptions, hideDisabledOptions) {\n const arr = [];\n for (let value = 0; value < length; value++) {\n if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nconst Panel = React.createClass({\n propTypes: {\n clearText: PropTypes.string,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n value: PropTypes.object,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n onChange: PropTypes.func,\n onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n showHour: PropTypes.bool,\n showSecond: PropTypes.bool,\n onClear: PropTypes.func,\n addon: PropTypes.func,\n },\n\n getDefaultProps() {\n return {\n prefixCls: 'rc-time-picker-panel',\n onChange: noop,\n onClear: noop,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n defaultOpenValue: moment(),\n addon: noop,\n };\n },\n\n getInitialState() {\n return {\n value: this.props.value,\n selectionRange: [],\n };\n },\n\n componentWillReceiveProps(nextProps) {\n const value = nextProps.value;\n if (value) {\n this.setState({\n value,\n });\n }\n },\n\n onChange(newValue) {\n this.setState({ value: newValue });\n this.props.onChange(newValue);\n },\n\n onClear() {\n this.props.onClear();\n },\n\n onCurrentSelectPanelChange(currentSelectPanel) {\n this.setState({ currentSelectPanel });\n },\n\n close() {\n this.props.onEsc();\n },\n\n render() {\n const {\n prefixCls, className, placeholder, disabledHours, disabledMinutes,\n disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showSecond,\n format, defaultOpenValue, clearText, onEsc, addon,\n } = this.props;\n const {\n value, currentSelectPanel,\n } = this.state;\n const disabledHourOptions = disabledHours();\n const disabledMinuteOptions = disabledMinutes(value ? value.hour() : null);\n const disabledSecondOptions = disabledSeconds(value ? value.hour() : null,\n value ? value.minute() : null);\n const hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions);\n const minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions);\n const secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions);\n\n return (\n <div className={classNames({ [`${prefixCls}-inner`]: true, [className]: !!className })}>\n <Header\n clearText={clearText}\n prefixCls={prefixCls}\n defaultOpenValue={defaultOpenValue}\n value={value}\n currentSelectPanel={currentSelectPanel}\n onEsc={onEsc}\n format={format}\n placeholder={placeholder}\n hourOptions={hourOptions}\n minuteOptions={minuteOptions}\n secondOptions={secondOptions}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n onChange={this.onChange}\n onClear={this.onClear}\n allowEmpty={allowEmpty}\n />\n <Combobox\n prefixCls={prefixCls}\n value={value}\n defaultOpenValue={defaultOpenValue}\n format={format}\n onChange={this.onChange}\n showHour={showHour}\n showSecond={showSecond}\n hourOptions={hourOptions}\n minuteOptions={minuteOptions}\n secondOptions={secondOptions}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n onCurrentSelectPanelChange={this.onCurrentSelectPanelChange}\n />\n {addon(this)}\n </div>\n );\n },\n});\n\nexport default Panel;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Panel.jsx\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/defineProperty.js\n ** module id = 214\n ** module chunks = 4\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 215\n ** module chunks = 4\n **/","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 216\n ** module chunks = 4\n **/","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 217\n ** module chunks = 4\n **/","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_export.js\n ** module id = 218\n ** module chunks = 4\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_global.js\n ** module id = 219\n ** module chunks = 4\n **/","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_core.js\n ** module id = 220\n ** module chunks = 4\n **/","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ctx.js\n ** module id = 221\n ** module chunks = 4\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_a-function.js\n ** module id = 222\n ** module chunks = 4\n **/","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_hide.js\n ** module id = 223\n ** module chunks = 4\n **/","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 224\n ** module chunks = 4\n **/","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_an-object.js\n ** module id = 225\n ** module chunks = 4\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 226\n ** module chunks = 4\n **/","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 227\n ** module chunks = 4\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 228\n ** module chunks = 4\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 229\n ** module chunks = 4\n **/","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 230\n ** module chunks = 4\n **/","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 231\n ** module chunks = 4\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 232\n ** module chunks = 4\n **/","import React, { PropTypes } from 'react';\nimport moment from 'moment';\n\nconst Header = React.createClass({\n propTypes: {\n format: PropTypes.string,\n prefixCls: PropTypes.string,\n disabledDate: PropTypes.func,\n placeholder: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n onChange: PropTypes.func,\n onClear: PropTypes.func,\n onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n defaultOpenValue: PropTypes.object,\n currentSelectPanel: PropTypes.string,\n },\n\n getInitialState() {\n const { value, format } = this.props;\n return {\n str: value && value.format(format) || '',\n invalid: false,\n };\n },\n\n componentWillReceiveProps(nextProps) {\n const { value, format } = nextProps;\n this.setState({\n str: value && value.format(format) || '',\n invalid: false,\n });\n },\n\n onInputChange(event) {\n const str = event.target.value;\n this.setState({\n str,\n });\n const {\n format, hourOptions, minuteOptions, secondOptions,\n disabledHours, disabledMinutes,\n disabledSeconds, onChange, allowEmpty,\n } = this.props;\n\n if (str) {\n const originalValue = this.props.value;\n const value = this.getProtoValue().clone();\n const parsed = moment(str, format, true);\n if (!parsed.isValid()) {\n this.setState({\n invalid: true,\n });\n return;\n }\n value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());\n\n // if time value not allowed, response warning.\n if (\n hourOptions.indexOf(value.hour()) < 0 ||\n minuteOptions.indexOf(value.minute()) < 0 ||\n secondOptions.indexOf(value.second()) < 0\n ) {\n this.setState({\n invalid: true,\n });\n return;\n }\n\n // if time value is disabled, response warning.\n const disabledHourOptions = disabledHours();\n const disabledMinuteOptions = disabledMinutes(value.hour());\n const disabledSecondOptions = disabledSeconds(value.hour(), value.minute());\n if (\n (disabledHourOptions && disabledHourOptions.indexOf(value.hour()) >= 0) ||\n (disabledMinuteOptions && disabledMinuteOptions.indexOf(value.minute()) >= 0) ||\n (disabledSecondOptions && disabledSecondOptions.indexOf(value.second()) >= 0)\n ) {\n this.setState({\n invalid: true,\n });\n return;\n }\n\n if (originalValue) {\n if (\n originalValue.hour() !== value.hour() ||\n originalValue.minute() !== value.minute() ||\n originalValue.second() !== value.second()\n ) {\n // keep other fields for rc-calendar\n const changedValue = originalValue.clone();\n changedValue.hour(value.hour());\n changedValue.minute(value.minute());\n changedValue.second(value.second());\n onChange(changedValue);\n }\n } else if (originalValue !== value) {\n onChange(value);\n }\n } else if (allowEmpty) {\n onChange(null);\n } else {\n this.setState({\n invalid: true,\n });\n return;\n }\n\n this.setState({\n invalid: false,\n });\n },\n\n onKeyDown(e) {\n if (e.keyCode === 27) {\n this.props.onEsc();\n }\n },\n\n onClear() {\n this.setState({ str: '' });\n this.props.onClear();\n },\n\n getClearButton() {\n const { prefixCls, allowEmpty } = this.props;\n if (!allowEmpty) {\n return null;\n }\n return (<a\n className={`${prefixCls}-clear-btn`}\n role=\"button\"\n title={this.props.clearText}\n onMouseDown={this.onClear}\n />);\n },\n\n getProtoValue() {\n return this.props.value || this.props.defaultOpenValue;\n },\n\n getInput() {\n const { prefixCls, placeholder } = this.props;\n const { invalid, str } = this.state;\n const invalidClass = invalid ? `${prefixCls}-input-invalid` : '';\n return (\n <input\n className={`${prefixCls}-input ${invalidClass}`}\n ref=\"input\"\n onKeyDown={this.onKeyDown}\n value={str}\n placeholder={placeholder}\n onChange={this.onInputChange}\n />\n );\n },\n\n render() {\n const { prefixCls } = this.props;\n return (\n <div className={`${prefixCls}-input-wrap`}>\n {this.getInput()}\n {this.getClearButton()}\n </div>\n );\n },\n});\n\nexport default Header;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Header.jsx\n **/","import React, { PropTypes } from 'react';\nimport Select from './Select';\n\nconst formatOption = (option, disabledOptions) => {\n let value = `${option}`;\n if (option < 10) {\n value = `0${option}`;\n }\n\n let disabled = false;\n if (disabledOptions && disabledOptions.indexOf(option) >= 0) {\n disabled = true;\n }\n\n return {\n value,\n disabled,\n };\n};\n\nconst Combobox = React.createClass({\n propTypes: {\n format: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n onChange: PropTypes.func,\n showHour: PropTypes.bool,\n showSecond: PropTypes.bool,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n onCurrentSelectPanelChange: PropTypes.func,\n },\n\n onItemChange(type, itemValue) {\n const { onChange, defaultOpenValue } = this.props;\n const value = (this.props.value || defaultOpenValue).clone();\n if (type === 'hour') {\n value.hour(itemValue);\n } else if (type === 'minute') {\n value.minute(itemValue);\n } else {\n value.second(itemValue);\n }\n onChange(value);\n },\n\n onEnterSelectPanel(range) {\n this.props.onCurrentSelectPanelChange(range);\n },\n\n getHourSelect(hour) {\n const { prefixCls, hourOptions, disabledHours, showHour } = this.props;\n if (!showHour) {\n return null;\n }\n const disabledOptions = disabledHours();\n\n return (\n <Select\n prefixCls={prefixCls}\n options={hourOptions.map(option => formatOption(option, disabledOptions))}\n selectedIndex={hourOptions.indexOf(hour)}\n type=\"hour\"\n onSelect={this.onItemChange}\n onMouseEnter={this.onEnterSelectPanel.bind(this, 'hour')}\n />\n );\n },\n\n getMinuteSelect(minute) {\n const { prefixCls, minuteOptions, disabledMinutes, defaultOpenValue } = this.props;\n const value = this.props.value || defaultOpenValue;\n const disabledOptions = disabledMinutes(value.hour());\n\n return (\n <Select\n prefixCls={prefixCls}\n options={minuteOptions.map(option => formatOption(option, disabledOptions))}\n selectedIndex={minuteOptions.indexOf(minute)}\n type=\"minute\"\n onSelect={this.onItemChange}\n onMouseEnter={this.onEnterSelectPanel.bind(this, 'minute')}\n />\n );\n },\n\n getSecondSelect(second) {\n const { prefixCls, secondOptions, disabledSeconds, showSecond, defaultOpenValue } = this.props;\n if (!showSecond) {\n return null;\n }\n const value = this.props.value || defaultOpenValue;\n const disabledOptions = disabledSeconds(value.hour(), value.minute());\n\n return (\n <Select\n prefixCls={prefixCls}\n options={secondOptions.map(option => formatOption(option, disabledOptions))}\n selectedIndex={secondOptions.indexOf(second)}\n type=\"second\"\n onSelect={this.onItemChange}\n onMouseEnter={this.onEnterSelectPanel.bind(this, 'second')}\n />\n );\n },\n\n render() {\n const { prefixCls, defaultOpenValue } = this.props;\n const value = this.props.value || defaultOpenValue;\n return (\n <div className={`${prefixCls}-combobox`}>\n {this.getHourSelect(value.hour())}\n {this.getMinuteSelect(value.minute())}\n {this.getSecondSelect(value.second())}\n </div>\n );\n },\n});\n\nexport default Combobox;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Combobox.jsx\n **/","import React, { PropTypes } from 'react';\nimport ReactDom from 'react-dom';\nimport classnames from 'classnames';\n\nconst scrollTo = (element, to, duration) => {\n const requestAnimationFrame = window.requestAnimationFrame ||\n function requestAnimationFrameTimeout() {\n return setTimeout(arguments[0], 10);\n };\n // jump to target if duration zero\n if (duration <= 0) {\n element.scrollTop = to;\n return;\n }\n const difference = to - element.scrollTop;\n const perTick = difference / duration * 10;\n\n requestAnimationFrame(() => {\n element.scrollTop = element.scrollTop + perTick;\n if (element.scrollTop === to) return;\n scrollTo(element, to, duration - 10);\n });\n};\n\nconst Select = React.createClass({\n propTypes: {\n prefixCls: PropTypes.string,\n options: PropTypes.array,\n selectedIndex: PropTypes.number,\n type: PropTypes.string,\n onSelect: PropTypes.func,\n onMouseEnter: PropTypes.func,\n },\n\n componentDidMount() {\n // jump to selected option\n this.scrollToSelected(0);\n },\n\n componentDidUpdate(prevProps) {\n // smooth scroll to selected option\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.scrollToSelected(120);\n }\n },\n\n onSelect(value) {\n const { onSelect, type } = this.props;\n onSelect(type, value);\n },\n\n getOptions() {\n const { options, selectedIndex, prefixCls } = this.props;\n return options.map((item, index) => {\n const cls = classnames({\n [`${prefixCls}-select-option-selected`]: selectedIndex === index,\n [`${prefixCls}-select-option-disabled`]: item.disabled,\n });\n let onclick = null;\n if (!item.disabled) {\n onclick = this.onSelect.bind(this, +item.value);\n }\n return (<li\n className={cls}\n key={index}\n onClick={onclick}\n disabled={item.disabled}\n >\n {item.value}\n </li>);\n });\n },\n\n scrollToSelected(duration) {\n // move to selected item\n const select = ReactDom.findDOMNode(this);\n const list = ReactDom.findDOMNode(this.refs.list);\n let index = this.props.selectedIndex;\n if (index < 0) {\n index = 0;\n }\n const topOption = list.children[index];\n const to = topOption.offsetTop;\n scrollTo(select, to, duration);\n },\n\n render() {\n if (this.props.options.length === 0) {\n return null;\n }\n\n const { prefixCls } = this.props;\n\n return (\n <div\n className={`${prefixCls}-select`}\n onMouseEnter={this.props.onMouseEnter}\n >\n <ul ref=\"list\">{this.getOptions()}</ul>\n </div>\n );\n },\n});\n\nexport default Select;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Select.jsx\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 236\n ** module chunks = 4\n **/","const autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1,\n};\n\nconst targetOffset = [0, 0];\n\nconst placements = {\n bottomLeft: {\n points: ['tl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset,\n },\n bottomRight: {\n points: ['tr', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset,\n },\n topRight: {\n points: ['br', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset,\n },\n topLeft: {\n points: ['bl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset,\n },\n};\n\nexport default placements;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/placements.js\n **/"],"sourceRoot":""} \ No newline at end of file | {"version":3,"sources":["webpack:///webpack/bootstrap 67ffb40f5acf1f890f20","webpack:///./assets/index.less?74d4","webpack:///./~/.15.3.2@react/react.js","webpack:///./~/.15.3.2@react/lib/React.js","webpack:///./~/.0.11.9@process/browser.js","webpack:///./~/.4.1.0@object-assign/index.js","webpack:///./~/.15.3.2@react/lib/ReactChildren.js","webpack:///./~/.15.3.2@react/lib/PooledClass.js","webpack:///./~/.15.3.2@react/lib/reactProdInvariant.js","webpack:///./~/.0.8.5@fbjs/lib/invariant.js","webpack:///./~/.15.3.2@react/lib/ReactElement.js","webpack:///./~/.15.3.2@react/lib/ReactCurrentOwner.js","webpack:///./~/.0.8.5@fbjs/lib/warning.js","webpack:///./~/.0.8.5@fbjs/lib/emptyFunction.js","webpack:///./~/.15.3.2@react/lib/canDefineProperty.js","webpack:///./~/.15.3.2@react/lib/traverseAllChildren.js","webpack:///./~/.15.3.2@react/lib/getIteratorFn.js","webpack:///./~/.15.3.2@react/lib/KeyEscapeUtils.js","webpack:///./~/.15.3.2@react/lib/ReactComponent.js","webpack:///./~/.15.3.2@react/lib/ReactNoopUpdateQueue.js","webpack:///./~/.0.8.5@fbjs/lib/emptyObject.js","webpack:///./~/.15.3.2@react/lib/ReactPureComponent.js","webpack:///./~/.15.3.2@react/lib/ReactClass.js","webpack:///./~/.15.3.2@react/lib/ReactPropTypeLocations.js","webpack:///./~/.0.8.5@fbjs/lib/keyMirror.js","webpack:///./~/.15.3.2@react/lib/ReactPropTypeLocationNames.js","webpack:///./~/.0.8.5@fbjs/lib/keyOf.js","webpack:///./~/.15.3.2@react/lib/ReactDOMFactories.js","webpack:///./~/.15.3.2@react/lib/ReactElementValidator.js","webpack:///./~/.15.3.2@react/lib/ReactComponentTreeHook.js","webpack:///./~/.15.3.2@react/lib/checkReactTypeSpec.js","webpack:///./~/.15.3.2@react/lib/ReactPropTypesSecret.js","webpack:///./~/.15.3.2@react/lib/ReactPropTypes.js","webpack:///./~/.15.3.2@react/lib/ReactVersion.js","webpack:///./~/.15.3.2@react/lib/onlyChild.js","webpack:///./~/.15.3.2@react-dom/index.js","webpack:///./~/.15.3.2@react/lib/ReactDOM.js","webpack:///./~/.15.3.2@react/lib/ReactDOMComponentTree.js","webpack:///./~/.15.3.2@react/lib/DOMProperty.js","webpack:///./~/.15.3.2@react/lib/ReactDOMComponentFlags.js","webpack:///./~/.15.3.2@react/lib/ReactDefaultInjection.js","webpack:///./~/.15.3.2@react/lib/BeforeInputEventPlugin.js","webpack:///./~/.15.3.2@react/lib/EventConstants.js","webpack:///./~/.15.3.2@react/lib/EventPropagators.js","webpack:///./~/.15.3.2@react/lib/EventPluginHub.js","webpack:///./~/.15.3.2@react/lib/EventPluginRegistry.js","webpack:///./~/.15.3.2@react/lib/EventPluginUtils.js","webpack:///./~/.15.3.2@react/lib/ReactErrorUtils.js","webpack:///./~/.15.3.2@react/lib/accumulateInto.js","webpack:///./~/.15.3.2@react/lib/forEachAccumulated.js","webpack:///./~/.0.8.5@fbjs/lib/ExecutionEnvironment.js","webpack:///./~/.15.3.2@react/lib/FallbackCompositionState.js","webpack:///./~/.15.3.2@react/lib/getTextContentAccessor.js","webpack:///./~/.15.3.2@react/lib/SyntheticCompositionEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticInputEvent.js","webpack:///./~/.15.3.2@react/lib/ChangeEventPlugin.js","webpack:///./~/.15.3.2@react/lib/ReactUpdates.js","webpack:///./~/.15.3.2@react/lib/CallbackQueue.js","webpack:///./~/.15.3.2@react/lib/ReactFeatureFlags.js","webpack:///./~/.15.3.2@react/lib/ReactReconciler.js","webpack:///./~/.15.3.2@react/lib/ReactRef.js","webpack:///./~/.15.3.2@react/lib/ReactOwner.js","webpack:///./~/.15.3.2@react/lib/ReactInstrumentation.js","webpack:///./~/.15.3.2@react/lib/ReactDebugTool.js","webpack:///./~/.15.3.2@react/lib/ReactInvalidSetStateWarningHook.js","webpack:///./~/.15.3.2@react/lib/ReactHostOperationHistoryHook.js","webpack:///./~/.15.3.2@react/lib/ReactChildrenMutationWarningHook.js","webpack:///./~/.0.8.5@fbjs/lib/performanceNow.js","webpack:///./~/.0.8.5@fbjs/lib/performance.js","webpack:///./~/.15.3.2@react/lib/Transaction.js","webpack:///./~/.15.3.2@react/lib/getEventTarget.js","webpack:///./~/.15.3.2@react/lib/isEventSupported.js","webpack:///./~/.15.3.2@react/lib/isTextInputElement.js","webpack:///./~/.15.3.2@react/lib/DefaultEventPluginOrder.js","webpack:///./~/.15.3.2@react/lib/EnterLeaveEventPlugin.js","webpack:///./~/.15.3.2@react/lib/SyntheticMouseEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticUIEvent.js","webpack:///./~/.15.3.2@react/lib/ViewportMetrics.js","webpack:///./~/.15.3.2@react/lib/getEventModifierState.js","webpack:///./~/.15.3.2@react/lib/HTMLDOMPropertyConfig.js","webpack:///./~/.15.3.2@react/lib/ReactComponentBrowserEnvironment.js","webpack:///./~/.15.3.2@react/lib/DOMChildrenOperations.js","webpack:///./~/.15.3.2@react/lib/DOMLazyTree.js","webpack:///./~/.15.3.2@react/lib/DOMNamespaces.js","webpack:///./~/.15.3.2@react/lib/setInnerHTML.js","webpack:///./~/.15.3.2@react/lib/createMicrosoftUnsafeLocalFunction.js","webpack:///./~/.15.3.2@react/lib/setTextContent.js","webpack:///./~/.15.3.2@react/lib/escapeTextContentForBrowser.js","webpack:///./~/.15.3.2@react/lib/Danger.js","webpack:///./~/.0.8.5@fbjs/lib/createNodesFromMarkup.js","webpack:///./~/.0.8.5@fbjs/lib/createArrayFromMixed.js","webpack:///./~/.0.8.5@fbjs/lib/getMarkupWrap.js","webpack:///./~/.15.3.2@react/lib/ReactMultiChildUpdateTypes.js","webpack:///./~/.15.3.2@react/lib/ReactDOMIDOperations.js","webpack:///./~/.15.3.2@react/lib/ReactDOMComponent.js","webpack:///./~/.15.3.2@react/lib/AutoFocusUtils.js","webpack:///./~/.0.8.5@fbjs/lib/focusNode.js","webpack:///./~/.15.3.2@react/lib/CSSPropertyOperations.js","webpack:///./~/.15.3.2@react/lib/CSSProperty.js","webpack:///./~/.0.8.5@fbjs/lib/camelizeStyleName.js","webpack:///./~/.0.8.5@fbjs/lib/camelize.js","webpack:///./~/.15.3.2@react/lib/dangerousStyleValue.js","webpack:///./~/.0.8.5@fbjs/lib/hyphenateStyleName.js","webpack:///./~/.0.8.5@fbjs/lib/hyphenate.js","webpack:///./~/.0.8.5@fbjs/lib/memoizeStringOnly.js","webpack:///./~/.15.3.2@react/lib/DOMPropertyOperations.js","webpack:///./~/.15.3.2@react/lib/quoteAttributeValueForBrowser.js","webpack:///./~/.15.3.2@react/lib/ReactBrowserEventEmitter.js","webpack:///./~/.15.3.2@react/lib/ReactEventEmitterMixin.js","webpack:///./~/.15.3.2@react/lib/getVendorPrefixedEventName.js","webpack:///./~/.15.3.2@react/lib/ReactDOMButton.js","webpack:///./~/.15.3.2@react/lib/DisabledInputUtils.js","webpack:///./~/.15.3.2@react/lib/ReactDOMInput.js","webpack:///./~/.15.3.2@react/lib/LinkedValueUtils.js","webpack:///./~/.15.3.2@react/lib/ReactDOMOption.js","webpack:///./~/.15.3.2@react/lib/ReactDOMSelect.js","webpack:///./~/.15.3.2@react/lib/ReactDOMTextarea.js","webpack:///./~/.15.3.2@react/lib/ReactMultiChild.js","webpack:///./~/.15.3.2@react/lib/ReactComponentEnvironment.js","webpack:///./~/.15.3.2@react/lib/ReactInstanceMap.js","webpack:///./~/.15.3.2@react/lib/ReactChildReconciler.js","webpack:///./~/.15.3.2@react/lib/instantiateReactComponent.js","webpack:///./~/.15.3.2@react/lib/ReactCompositeComponent.js","webpack:///./~/.15.3.2@react/lib/ReactNodeTypes.js","webpack:///./~/.0.8.5@fbjs/lib/shallowEqual.js","webpack:///./~/.15.3.2@react/lib/shouldUpdateReactComponent.js","webpack:///./~/.15.3.2@react/lib/ReactEmptyComponent.js","webpack:///./~/.15.3.2@react/lib/ReactHostComponent.js","webpack:///./~/.15.3.2@react/lib/flattenChildren.js","webpack:///./~/.15.3.2@react/lib/ReactServerRenderingTransaction.js","webpack:///./~/.15.3.2@react/lib/ReactServerUpdateQueue.js","webpack:///./~/.15.3.2@react/lib/ReactUpdateQueue.js","webpack:///./~/.15.3.2@react/lib/validateDOMNesting.js","webpack:///./~/.15.3.2@react/lib/ReactDOMEmptyComponent.js","webpack:///./~/.15.3.2@react/lib/ReactDOMTreeTraversal.js","webpack:///./~/.15.3.2@react/lib/ReactDOMTextComponent.js","webpack:///./~/.15.3.2@react/lib/ReactDefaultBatchingStrategy.js","webpack:///./~/.15.3.2@react/lib/ReactEventListener.js","webpack:///./~/.0.8.5@fbjs/lib/EventListener.js","webpack:///./~/.0.8.5@fbjs/lib/getUnboundedScrollPosition.js","webpack:///./~/.15.3.2@react/lib/ReactInjection.js","webpack:///./~/.15.3.2@react/lib/ReactReconcileTransaction.js","webpack:///./~/.15.3.2@react/lib/ReactInputSelection.js","webpack:///./~/.15.3.2@react/lib/ReactDOMSelection.js","webpack:///./~/.15.3.2@react/lib/getNodeForCharacterOffset.js","webpack:///./~/.0.8.5@fbjs/lib/containsNode.js","webpack:///./~/.0.8.5@fbjs/lib/isTextNode.js","webpack:///./~/.0.8.5@fbjs/lib/isNode.js","webpack:///./~/.0.8.5@fbjs/lib/getActiveElement.js","webpack:///./~/.15.3.2@react/lib/SVGDOMPropertyConfig.js","webpack:///./~/.15.3.2@react/lib/SelectEventPlugin.js","webpack:///./~/.15.3.2@react/lib/SimpleEventPlugin.js","webpack:///./~/.15.3.2@react/lib/SyntheticAnimationEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticClipboardEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticFocusEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticKeyboardEvent.js","webpack:///./~/.15.3.2@react/lib/getEventCharCode.js","webpack:///./~/.15.3.2@react/lib/getEventKey.js","webpack:///./~/.15.3.2@react/lib/SyntheticDragEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticTouchEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticTransitionEvent.js","webpack:///./~/.15.3.2@react/lib/SyntheticWheelEvent.js","webpack:///./~/.15.3.2@react/lib/ReactMount.js","webpack:///./~/.15.3.2@react/lib/ReactDOMContainerInfo.js","webpack:///./~/.15.3.2@react/lib/ReactDOMFeatureFlags.js","webpack:///./~/.15.3.2@react/lib/ReactMarkupChecksum.js","webpack:///./~/.15.3.2@react/lib/adler32.js","webpack:///./~/.15.3.2@react/lib/findDOMNode.js","webpack:///./~/.15.3.2@react/lib/getHostComponentFromComposite.js","webpack:///./~/.15.3.2@react/lib/renderSubtreeIntoContainer.js","webpack:///./~/.15.3.2@react/lib/ReactDOMUnknownPropertyHook.js","webpack:///./~/.15.3.2@react/lib/ReactDOMNullInputValuePropHook.js","webpack:///./~/.2.16.0@moment/moment.js","webpack:///./index.js","webpack:///./src/index.js","webpack:///./src/TimePicker.jsx","webpack:///./~/.1.7.3@rc-trigger/lib/index.js","webpack:///./~/.1.7.3@rc-trigger/lib/Trigger.js","webpack:///./~/.6.18.0@babel-runtime/helpers/extends.js","webpack:///./~/.6.18.0@babel-runtime/core-js/object/assign.js","webpack:///./~/.2.4.1@core-js/library/fn/object/assign.js","webpack:///./~/.2.4.1@core-js/library/modules/es6.object.assign.js","webpack:///./~/.2.4.1@core-js/library/modules/_export.js","webpack:///./~/.2.4.1@core-js/library/modules/_global.js","webpack:///./~/.2.4.1@core-js/library/modules/_core.js","webpack:///./~/.2.4.1@core-js/library/modules/_ctx.js","webpack:///./~/.2.4.1@core-js/library/modules/_a-function.js","webpack:///./~/.2.4.1@core-js/library/modules/_hide.js","webpack:///./~/.2.4.1@core-js/library/modules/_object-dp.js","webpack:///./~/.2.4.1@core-js/library/modules/_an-object.js","webpack:///./~/.2.4.1@core-js/library/modules/_is-object.js","webpack:///./~/.2.4.1@core-js/library/modules/_ie8-dom-define.js","webpack:///./~/.2.4.1@core-js/library/modules/_descriptors.js","webpack:///./~/.2.4.1@core-js/library/modules/_fails.js","webpack:///./~/.2.4.1@core-js/library/modules/_dom-create.js","webpack:///./~/.2.4.1@core-js/library/modules/_to-primitive.js","webpack:///./~/.2.4.1@core-js/library/modules/_property-desc.js","webpack:///./~/.2.4.1@core-js/library/modules/_object-assign.js","webpack:///./~/.2.4.1@core-js/library/modules/_object-keys.js","webpack:///./~/.2.4.1@core-js/library/modules/_object-keys-internal.js","webpack:///./~/.2.4.1@core-js/library/modules/_has.js","webpack:///./~/.2.4.1@core-js/library/modules/_to-iobject.js","webpack:///./~/.2.4.1@core-js/library/modules/_iobject.js","webpack:///./~/.2.4.1@core-js/library/modules/_cof.js","webpack:///./~/.2.4.1@core-js/library/modules/_defined.js","webpack:///./~/.2.4.1@core-js/library/modules/_array-includes.js","webpack:///./~/.2.4.1@core-js/library/modules/_to-length.js","webpack:///./~/.2.4.1@core-js/library/modules/_to-integer.js","webpack:///./~/.2.4.1@core-js/library/modules/_to-index.js","webpack:///./~/.2.4.1@core-js/library/modules/_shared-key.js","webpack:///./~/.2.4.1@core-js/library/modules/_shared.js","webpack:///./~/.2.4.1@core-js/library/modules/_uid.js","webpack:///./~/.2.4.1@core-js/library/modules/_enum-bug-keys.js","webpack:///./~/.2.4.1@core-js/library/modules/_object-gops.js","webpack:///./~/.2.4.1@core-js/library/modules/_object-pie.js","webpack:///./~/.2.4.1@core-js/library/modules/_to-object.js","webpack:///./~/.3.4.1@rc-util/lib/Dom/contains.js","webpack:///./~/.3.4.1@rc-util/lib/Dom/addEventListener.js","webpack:///./~/.1.0.1@add-dom-event-listener/lib/index.js","webpack:///./~/.1.0.1@add-dom-event-listener/lib/EventObject.js","webpack:///./~/.1.0.1@add-dom-event-listener/lib/EventBaseObject.js","webpack:///./~/.1.7.3@rc-trigger/lib/Popup.js","webpack:///./~/.2.3.2@rc-align/lib/index.js","webpack:///./~/.2.3.2@rc-align/lib/Align.js","webpack:///./~/.1.5.2@dom-align/lib/index.js","webpack:///./~/.1.5.2@dom-align/lib/utils.js","webpack:///./~/.1.5.2@dom-align/lib/propertyUtils.js","webpack:///./~/.1.5.2@dom-align/lib/getOffsetParent.js","webpack:///./~/.1.5.2@dom-align/lib/getVisibleRectForElement.js","webpack:///./~/.1.5.2@dom-align/lib/adjustForViewport.js","webpack:///./~/.1.5.2@dom-align/lib/getRegion.js","webpack:///./~/.1.5.2@dom-align/lib/getElFuturePos.js","webpack:///./~/.1.5.2@dom-align/lib/getAlignOffset.js","webpack:///./~/.2.3.2@rc-align/lib/isWindow.js","webpack:///./~/.2.3.1@rc-animate/lib/index.js","webpack:///./~/.2.3.1@rc-animate/lib/Animate.js","webpack:///./~/.2.3.1@rc-animate/lib/ChildrenUtils.js","webpack:///./~/.2.3.1@rc-animate/lib/AnimateChild.js","webpack:///./~/.1.3.0@css-animation/lib/index.js","webpack:///./~/.1.3.0@css-animation/lib/Event.js","webpack:///./~/.1.2.6@component-classes/index.js","webpack:///./~/.0.0.3@component-indexof/index.js","webpack:///./~/.2.3.1@rc-animate/lib/util.js","webpack:///./~/.1.7.3@rc-trigger/lib/PopupInner.js","webpack:///./~/.1.7.3@rc-trigger/lib/LazyRenderBox.js","webpack:///./~/.6.18.0@babel-runtime/helpers/objectWithoutProperties.js","webpack:///./~/.1.7.3@rc-trigger/lib/utils.js","webpack:///./~/.3.4.1@rc-util/lib/getContainerRenderMixin.js","webpack:///./src/Panel.jsx","webpack:///./~/.6.18.0@babel-runtime/helpers/defineProperty.js","webpack:///./~/.6.18.0@babel-runtime/core-js/object/define-property.js","webpack:///./~/.2.4.1@core-js/library/fn/object/define-property.js","webpack:///./~/.2.4.1@core-js/library/modules/es6.object.define-property.js","webpack:///./src/Header.jsx","webpack:///./src/Combobox.jsx","webpack:///./src/Select.jsx","webpack:///./~/.2.2.5@classnames/index.js","webpack:///./src/placements.js"],"names":["noop","refFn","field","component","Picker","createClass","propTypes","prefixCls","string","clearText","value","object","defaultOpenValue","disabled","bool","allowEmpty","defaultValue","open","defaultOpen","align","placement","any","transitionName","getPopupContainer","func","placeholder","format","showHour","showMinute","showSecond","style","className","disabledHours","disabledMinutes","disabledSeconds","hideDisabledOptions","onChange","onOpen","onClose","addon","getDefaultProps","getInitialState","savePanelRef","bind","props","componentWillReceiveProps","nextProps","setState","undefined","onPanelChange","setValue","onPanelClear","setOpen","onVisibleChange","onEsc","refs","picker","focus","onKeyDown","e","keyCode","getFormat","filter","item","join","getPanelElement","state","callback","event","render","popupClassName","generateOptions","length","disabledOptions","arr","indexOf","push","Panel","onClear","selectionRange","newValue","onCurrentSelectPanelChange","currentSelectPanel","close","disabledHourOptions","disabledMinuteOptions","hour","disabledSecondOptions","minute","hourOptions","minuteOptions","secondOptions","Header","disabledDate","array","str","invalid","onInputChange","target","originalValue","getProtoValue","clone","parsed","isValid","second","changedValue","getClearButton","getInput","invalidClass","formatOption","option","Combobox","onItemChange","type","itemValue","onEnterSelectPanel","range","getHourSelect","map","getMinuteSelect","getSecondSelect","scrollTo","element","to","duration","requestAnimationFrame","window","requestAnimationFrameTimeout","setTimeout","arguments","scrollTop","difference","perTick","Select","options","selectedIndex","number","onSelect","onMouseEnter","componentDidMount","scrollToSelected","componentDidUpdate","prevProps","getOptions","index","cls","onclick","select","findDOMNode","list","topOption","children","offsetTop","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","bottomLeft","points","overflow","offset","bottomRight","topRight","topLeft"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wEAAgE,sFAAsF;AACtJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACzFA,0C;;;;;;ACAA;;AAEA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wB;;;;;;;ACxFA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,UAAU;AACrB,YAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,iBAAiB;AAC5B,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,UAAU;AACrB,YAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,iBAAiB;AAC5B,YAAW,EAAE;AACb,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qDAAoD;;AAEpD,uBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA,qC;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA,4B;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,cAAc;AACzB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+B;;;;;;;AC3VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;;AAEA,oC;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAe;AACf;;AAEA;AACA,+FAA8F,eAAe;AAC7G;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,0B;;;;;;;ACjEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6BAA4B,QAAQ,oBAAoB,EAAE;AAC1D;AACA,IAAG;AACH;AACA;AACA;;AAEA,oC;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,GAAG;AACd,YAAW,QAAQ;AACnB,YAAW,UAAU;AACrB,YAAW,GAAG;AACd;AACA,aAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB;AACvB;;AAEA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2LAA2L,yCAAyC,+GAA+G,yCAAyC;AAC5X;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,GAAG;AACd,YAAW,UAAU;AACrB,YAAW,GAAG;AACd,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sC;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,yCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA,iC;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB;AACA;AACA,0DAAyD;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,8B;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAwB,eAAe;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,KAAK;AAClC;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,0BAA0B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,WAAW;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,sBAAqB,mBAAmB;AACxC;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,+CAA8C;AAC9C,IAAG;AACH;AACA;AACA;AACA;AACA,0CAAyC;AACzC,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,uCAAsC;AACtC,IAAG;AACH;AACA;AACA,IAAG;AACH,2BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,6HAA4H;AAC5H;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qOAAoO;;AAEpO;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA,qNAAoN;AACpN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA,uDAAsD;AACtD;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6B;;;;;;;AC3tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED,yC;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4B;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6C;;;;;;;ACvBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wB;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;ACzKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA,0FAAyF;;AAEzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,UAAU;AACrB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;;;AAGH;;AAEA;AACA;;AAEA,yC;;;;;;;ACrVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kJAAiJ;AACjJ;AACA,QAAO;AACP;AACA;AACA,uIAAsI;AACtI;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uC;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR,4BAA2B;AAC3B,OAAM;AACN;AACA;AACA;AACA;AACA,8BAA6B,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,2BAA0B;AAC1B,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;AC9aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2B;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,4B;;;;;;;ACrCA;;AAEA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,+HAA8H;;AAE9H;AACA;AACA;;AAEA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2B;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAkE;AAClE;AACA;AACA;AACA,WAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAQ,gBAAgB;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wC;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C;AAC5C,+BAA8B;AAC9B;AACA,iBAAgB;;AAEhB;AACA;AACA;AACA,aAAY;AACZ;AACA,sEAAqE;;AAErE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAmB,oDAAoD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA,8B;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,yC;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,G;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oCAAmC;AACnC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,uBAAsB,2BAA2B;AACjD,wBAAuB,kCAAkC;AACzD,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,uBAAsB,4BAA4B;AAClD,wBAAuB,mCAAmC;AAC1D,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,yC;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,oCAAmC,gCAAgC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA,iC;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mC;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA,gBAAe,OAAO;AACtB;AACA;;AAEA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA,yGAAwG;AACxG;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA,iC;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA8B;;AAE9B;AACA;AACA;AACA,8BAA6B;;AAE7B;AACA;AACA;AACA,mCAAkC;;AAElC;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,wEAAuE;;AAEvE;AACA;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,eAAe;AAC1B,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;;AAEH;AACA;;AAEA,mC;;;;;;;ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kC;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA,aAAY,WAAW;AACvB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,qC;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uC;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,eAAe;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,2C;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yC;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,4C;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,oBAAmB,uCAAuC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA8B;AAC9B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB,aAAY,OAAO;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;AC3QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oC;;;;;;ACpUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,eAAe;AAC1B,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAgD;AAChD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa,SAAS;AACtB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;;AAEA,gC;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,0DAA0D;AACvE,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,aAAa;AAC1B,cAAa,0BAA0B;AACvC,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kC;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6B;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAkB,wB;;;;;;;ACpBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,kD;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,gD;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,mD;;;;;;;ACrDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA,iC;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,oC;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,4BAA4B;AACvC;AACA,aAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA,eAAc,0BAA0B;AACxC;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB;AACA,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,6BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,2DAA0D;AAC1D;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,sDAAqD;AACrD;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,8B;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,eAAe;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iC;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mC;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qC;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC,6BAA6B,UAAU,0BAA0B,UAAU,uBAAuB,UAAU,8BAA8B,UAAU,0BAA0B,UAAU,0BAA0B,UAAU,+BAA+B;;AAEjS,0C;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,8BAA6B,qBAAqB;AAClD;AACA,IAAG;AACH;AACA,8BAA6B,qBAAqB;AAClD;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,wC;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,mC;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kC;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wC;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA,wC;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,mD;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,WAAW;AACtB,YAAW,WAAW;AACtB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,gGAA+F,8DAA8D;AAC7J;AACA;AACA;AACA;AACA;AACA,8FAA6F,uDAAuD;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAA+F,8BAA8B;AAC7H;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;AACH;AACA;AACA;;AAEA,qD;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,yBAAwB,EAAE,8BAA8B;AACxD;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8C;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA,yB;;;;;;;AC/CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,aAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wC;;;;;;;AClFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,yBAAyB;AACpC,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,oLAAmL;;AAEnL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAkB,aAAa;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY;AACZ;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA,uC;;;;;;;AC7HA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,6C;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;;AAErB,oBAAmB,cAAc;AACjC,mBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,yBAAyB;AACxC;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qNAAoN,YAAY;AAChO;AACA;AACA;AACA;AACA;AACA;AACA,gOAA+N,+BAA+B;AAC9P;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,qDAAoD;AACpD;AACA,wBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,mBAAmB;AAChC,cAAa,QAAQ;AACrB,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,wBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,0DAA0D;AACvE,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC,cAAa,aAAa;AAC1B,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,uCAAsC,KAAK;AAC3C;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,0BAA0B;AACvC,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;;AAEA,oC;;;;;;;AC7+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,WAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA,4B;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA4C;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa,OAAO;AACpB,cAAa,EAAE;AACf,cAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAgC,0BAA0B;AAC1D,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,kBAAkB;AAC/B,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAgF;AAChF;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB,cAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8B;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA,oC;;;;;;ACtCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA,2B;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,YAAW,kBAAkB;AAC7B,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sC;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA,qC;;;;;;ACrCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;;AAEA,4B;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,EAAE;AACf,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,EAAE;AACf,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,wC;;;;;;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA,gD;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED,2C;;;;;;ACzUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yC;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6C;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qC;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA,2GAA0G;AAC1G;AACA;AACA;AACA,6GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gC;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,eAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,cAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,mC;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA,2BAA0B;AAC1B,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,8BAA6B,2CAA2C;;AAExE;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iC;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAuG;AACvG;AACA;;AAEA,kBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,YAAW,kBAAkB;AAC7B,YAAW,QAAQ;AACnB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,sBAAsB;AACrC;AACA;AACA,gBAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,gBAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,8GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,mCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mC;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,iBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,gBAAe,QAAQ;AACvB,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,eAAe;AAC9B,gBAAe,OAAO;AACtB,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,eAAe;AAC9B,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gBAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAe,eAAe;AAC9B,gBAAe,OAAO;AACtB,gBAAe,OAAO;AACtB,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,kC;;;;;;;AClcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,4C;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA,mC;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sKAAqK;AACrK;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,0BAA0B;AACvC,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,uC;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,UAAU;AACrB,YAAW,QAAQ;AACnB,aAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4C;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT,QAAO;AACP;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,0BAA0B;AACvC,cAAa,aAAa;AAC1B,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA8B;AAC9B,kCAAiC,kBAAkB;AACnD;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,OAAO;AACpB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,0BAA0B;AACvC,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,eAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,0C;;;;;;;ACv4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+B;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,aAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,6C;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,aAAa;AACxB,aAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,UAAU;AACrB,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,YAAW,eAAe;AAC1B,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,SAAS;AACpB,YAAW,gBAAgB;AAC3B,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wKAAuK;AACvK;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;;AAEA,kC;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAc,MAAM;AACpB;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,6BAA4B;;AAE5B,6BAA4B;;AAE5B;AACA;;AAEA;;AAEA;;AAEA,kD;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB;;AAEA;AACA,kCAAiC;;AAEjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;;;AAGA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,gBAAgB;AAC7B;AACA;;;AAGA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,gBAAgB;AAC7B;AACA;;;AAGA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED,yC;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yRAAwR;AACxR;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,0IAAyI;AACzI;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA,mC;;;;;;;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD;AACA;AACA,wCAAuC;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAiC;AACjC,iBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;AC7XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED,yC;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAyB,OAAO;AAChC;AACA;AACA;AACA,0BAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS;AAChC;AACA;AACA,cAAa,iBAAiB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,qBAAqB;AAClC;AACA;AACA,0BAAyB,SAAS;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa,0DAA0D;AACvE,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,UAAU;AACvB,cAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED,wC;;;;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,+C;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,kBAAiB,kCAAkC;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,qC;;;;;;AC5JA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA,gC;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,qBAAqB;AAChC,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6C;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,UAAU;AACxB;AACA;AACA;AACA,cAAa,UAAU;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,4C;;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,0BAAyB;AACzB,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,sC;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,aAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,WAAW;AACtB,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,uBAAuB;AAClC,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAa,WAAW;AACxB;AACA;;AAEA;AACA,cAAa,uBAAuB;AACpC,cAAa,OAAO;AACpB;AACA;AACA;;AAEA,oC;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,aAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,uBAAuB;AAClC,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4C;;;;;;ACzEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA,+B;;;;;;ACtCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,EAAE;AACb,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA,6B;;;;;;ACvBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,EAAE;AACb,aAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA,yB;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,mC;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,uC;;;;;;AC7SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA2B,iBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,WAAW;AACtB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,uBAAuB;AAC7C,wBAAuB,8BAA8B;AACrD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,6BAA6B;AACnD,wBAAuB,oCAAoC;AAC3D;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,cAAc;AACpC,wBAAuB,qBAAqB;AAC5C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,yBAAyB;AAC/C,wBAAuB,gCAAgC;AACvD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,eAAe;AACrC,wBAAuB,sBAAsB;AAC7C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,iBAAiB;AACvC,wBAAuB,wBAAwB;AAC/C;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,sBAAsB;AAC5C,wBAAuB,6BAA6B;AACpD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,mBAAmB;AACzC,wBAAuB,0BAA0B;AACjD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,oBAAoB;AAC1C,wBAAuB,2BAA2B;AAClD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,qBAAqB;AAC3C,wBAAuB,4BAA4B;AACnD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,wBAAwB;AAC9C,wBAAuB,+BAA+B;AACtD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,uBAAuB;AAC7C,wBAAuB,8BAA8B;AACrD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,kBAAkB;AACxC,wBAAuB,yBAAyB;AAChD;AACA,IAAG;AACH;AACA;AACA,uBAAsB,gBAAgB;AACtC,wBAAuB,uBAAuB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA0B,gBAAgB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oC;;;;;;;AC1nBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,0C;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,0C;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,yC;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mC;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,qC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,2C;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,sC;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA,kBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,uBAAuB;AAClC;AACA,aAAY,GAAG;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,WAAW;AACtB,YAAW,0BAA0B;AACrC,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,WAAW;AACtB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B,YAAW,WAAW;AACtB;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,YAAY;AACvB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,YAAY;AACvB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,QAAQ;AACrB,eAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA,qLAAoL;;AAEpL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB,eAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,aAAa;AAC1B,cAAa,WAAW;AACxB,cAAa,UAAU;AACvB,eAAc,eAAe;AAC7B;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,WAAW;AACxB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oLAAmL;;AAEnL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6B;;;;;;;ACrhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wC;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,uC;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA,cAAa,OAAO;AACpB,cAAa,WAAW;AACxB,gBAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sC;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA,SAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,0B;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,0BAA0B;AACrC,aAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,8B;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,gD;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,wD;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA6C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,8C;;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA,iD;;;;;;;AC1CA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA;AACA,EAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,gBAAgB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA,wBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mFAAkF,IAAI;AACtF;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA8B,IAAI;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAoB,iCAAiC;AACrD;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,wBAAuB,wBAAwB;AAC/C;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yLAAwL,IAAI;;AAE5L,kEAAiE,IAAI;;AAErE;;AAEA;;AAEA;AACA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAsC,YAAY;AAClD;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA0B;AAC1B,6BAA4B;AAC5B,0BAAyB,EAAE,EAAE;AAC7B,0BAAyB,EAAE,EAAE;AAC7B,+BAA8B,EAAE,EAAE;AAClC,8BAA6B;AAC7B,kCAAiC;AACjC,sCAAqC;AACrC,0BAAyB,IAAI,EAAE;AAC/B,0BAAyB,IAAI,EAAE;AAC/B,+BAA8B,IAAI,EAAE;;AAEpC,4BAA2B;AAC3B,iCAAgC;;AAEhC,2CAA0C;AAC1C,kDAAiD;;AAEjD,qCAAoC,IAAI,IAAI;;AAE5C;AACA;AACA,6HAA4H,IAAI;;;AAGhI;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,2CAA0C;AAC1C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,kBAAkB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB;AACA;AACA;AACA,gBAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,YAAY;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wCAAuC,EAAE,IAAI,EAAE;AAC/C,qCAAoC,EAAE,IAAI,EAAE;;AAE5C;;AAEA;AACA,8BAA6B,EAAE;AAC/B,wBAAuB,EAAE;AACzB,0BAAyB,EAAE;AAC3B,wBAAuB,EAAE;AACzB,sBAAqB,EAAE,IAAI,EAAE;AAC7B,qBAAoB,EAAE;AACtB,4BAA2B,GAAG;AAC9B,sBAAqB,EAAE;AACvB;AACA,wBAAuB,EAAE,IAAI,EAAE;AAC/B,uBAAsB,EAAE,IAAI,EAAE;AAC9B,qBAAoB,EAAE;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAe,+BAA+B;AAC9C;AACA;;AAEA;AACA,WAAU,OAAO;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAe,sBAAsB;AACrC;AACA,mCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA8B,gBAAgB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,6BAA6B;AAClC;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe;;AAEf;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB;AAChB;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB,cAAc;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B,qBAAqB;AACpD,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B,qBAAqB;AACpD,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;;;AAGD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAoB,mBAAmB;AACvC;AACA;;AAEA;AACA;AACA;;AAEA,kBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;;AAED;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAC;;;;;;;;;;;;;ACzsID;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,UAASA,IAAT,GAAgB,CACf;;AAED,UAASC,KAAT,CAAeC,KAAf,EAAsBC,SAAtB,EAAiC;AAC/B,QAAKD,KAAL,IAAcC,SAAd;AACD;;AAED,KAAMC,SAAS,gBAAMC,WAAN,CAAkB;AAAA;;AAC/BC,cAAW;AACTC,gBAAW,iBAAUC,MADZ;AAETC,gBAAW,iBAAUD,MAFZ;AAGTE,YAAO,iBAAUC,MAHR;AAITC,uBAAkB,iBAAUD,MAJnB;AAKTE,eAAU,iBAAUC,IALX;AAMTC,iBAAY,iBAAUD,IANb;AAOTE,mBAAc,iBAAUL,MAPf;AAQTM,WAAM,iBAAUH,IARP;AASTI,kBAAa,iBAAUJ,IATd;AAUTK,YAAO,iBAAUR,MAVR;AAWTS,gBAAW,iBAAUC,GAXZ;AAYTC,qBAAgB,iBAAUd,MAZjB;AAaTe,wBAAmB,iBAAUC,IAbpB;AAcTC,kBAAa,iBAAUjB,MAdd;AAeTkB,aAAQ,iBAAUlB,MAfT;AAgBTmB,eAAU,iBAAUb,IAhBX;AAiBTc,iBAAY,iBAAUd,IAjBb;AAkBTe,iBAAY,iBAAUf,IAlBb;AAmBTgB,YAAO,iBAAUnB,MAnBR;AAoBToB,gBAAW,iBAAUvB,MApBZ;AAqBTwB,oBAAe,iBAAUR,IArBhB;AAsBTS,sBAAiB,iBAAUT,IAtBlB;AAuBTU,sBAAiB,iBAAUV,IAvBlB;AAwBTW,0BAAqB,iBAAUrB,IAxBtB;AAyBTsB,eAAU,iBAAUZ,IAzBX;AA0BTa,aAAQ,iBAAUb,IA1BT;AA2BTc,cAAS,iBAAUd,IA3BV;AA4BTe,YAAO,iBAAUf;AA5BR,IADoB;;AAgC/BgB,kBAhC+B,6BAgCb;AAChB,YAAO;AACL/B,kBAAW,OADN;AAELF,kBAAW,gBAFN;AAGLW,oBAAa,KAHR;AAILY,cAAO,EAJF;AAKLC,kBAAW,EALN;AAMLZ,cAAO,EANF;AAOLP,yBAAkB,uBAPb;AAQLG,mBAAY,IARP;AASLY,iBAAU,IATL;AAULC,mBAAY,IAVP;AAWLC,mBAAY,IAXP;AAYLG,sBAAehC,IAZV;AAaLiC,wBAAiBjC,IAbZ;AAcLkC,wBAAiBlC,IAdZ;AAeLmC,4BAAqB,KAfhB;AAgBLf,kBAAW,YAhBN;AAiBLgB,iBAAUpC,IAjBL;AAkBLqC,eAAQrC,IAlBH;AAmBLsC,gBAAStC,IAnBJ;AAoBLuC,cAAOvC;AApBF,MAAP;AAsBD,IAvD8B;AAyD/ByC,kBAzD+B,6BAyDb;AAChB,UAAKC,YAAL,GAAoBzC,MAAM0C,IAAN,CAAW,IAAX,EAAiB,eAAjB,CAApB;AADgB,kBAEgE,KAAKC,KAFrE;AAAA,SAER1B,WAFQ,UAERA,WAFQ;AAAA,SAEKF,YAFL,UAEKA,YAFL;AAAA,8BAEmBC,IAFnB;AAAA,SAEmBA,IAFnB,+BAE0BC,WAF1B;AAAA,+BAEuCR,KAFvC;AAAA,SAEuCA,KAFvC,gCAE+CM,YAF/C;;AAGhB,YAAO;AACLC,iBADK;AAELP;AAFK,MAAP;AAID,IAhE8B;AAkE/BmC,4BAlE+B,qCAkELC,SAlEK,EAkEM;AAAA,SAC3BpC,KAD2B,GACXoC,SADW,CAC3BpC,KAD2B;AAAA,SACpBO,IADoB,GACX6B,SADW,CACpB7B,IADoB;;AAEnC,SAAI,WAAW6B,SAAf,EAA0B;AACxB,YAAKC,QAAL,CAAc;AACZrC;AADY,QAAd;AAGD;AACD,SAAIO,SAAS+B,SAAb,EAAwB;AACtB,YAAKD,QAAL,CAAc,EAAE9B,UAAF,EAAd;AACD;AACF,IA5E8B;AA8E/BgC,gBA9E+B,yBA8EjBvC,KA9EiB,EA8EV;AACnB,UAAKwC,QAAL,CAAcxC,KAAd;AACD,IAhF8B;AAkF/ByC,eAlF+B,0BAkFhB;AACb,UAAKD,QAAL,CAAc,IAAd;AACA,UAAKE,OAAL,CAAa,KAAb;AACD,IArF8B;AAuF/BC,kBAvF+B,2BAuFfpC,IAvFe,EAuFT;AACpB,UAAKmC,OAAL,CAAanC,IAAb;AACD,IAzF8B;AA2F/BqC,QA3F+B,mBA2FvB;AACN,UAAKF,OAAL,CAAa,KAAb;AACA,UAAKG,IAAL,CAAUC,MAAV,CAAiBC,KAAjB;AACD,IA9F8B;AAgG/BC,YAhG+B,qBAgGrBC,CAhGqB,EAgGlB;AACX,SAAIA,EAAEC,OAAF,KAAc,EAAlB,EAAsB;AACpB,YAAKR,OAAL,CAAa,IAAb;AACD;AACF,IApG8B;AAsG/BF,WAtG+B,oBAsGtBxC,KAtGsB,EAsGf;AACd,SAAI,EAAE,WAAW,KAAKkC,KAAlB,CAAJ,EAA8B;AAC5B,YAAKG,QAAL,CAAc;AACZrC;AADY,QAAd;AAGD;AACD,UAAKkC,KAAL,CAAWR,QAAX,CAAoB1B,KAApB;AACD,IA7G8B;AA+G/BmD,YA/G+B,uBA+GnB;AAAA,mBAC2C,KAAKjB,KADhD;AAAA,SACFlB,MADE,WACFA,MADE;AAAA,SACMC,QADN,WACMA,QADN;AAAA,SACgBC,UADhB,WACgBA,UADhB;AAAA,SAC4BC,UAD5B,WAC4BA,UAD5B;;AAEV,SAAIH,MAAJ,EAAY;AACV,cAAOA,MAAP;AACD;AACD,YAAO,CACLC,WAAW,IAAX,GAAkB,EADb,EAELC,aAAa,IAAb,GAAoB,EAFf,EAGLC,aAAa,IAAb,GAAoB,EAHf,EAILiC,MAJK,CAIE;AAAA,cAAQ,CAAC,CAACC,IAAV;AAAA,MAJF,EAIkBC,IAJlB,CAIuB,GAJvB,CAAP;AAKD,IAzH8B;AA2H/BC,kBA3H+B,6BA2Hb;AAAA,mBAMZ,KAAKrB,KANO;AAAA,SAEdrC,SAFc,WAEdA,SAFc;AAAA,SAEHkB,WAFG,WAEHA,WAFG;AAAA,SAEUO,aAFV,WAEUA,aAFV;AAAA,SAGdC,eAHc,WAGdA,eAHc;AAAA,SAGGC,eAHH,WAGGA,eAHH;AAAA,SAGoBC,mBAHpB,WAGoBA,mBAHpB;AAAA,SAIdpB,UAJc,WAIdA,UAJc;AAAA,SAIFY,QAJE,WAIFA,QAJE;AAAA,SAIQC,UAJR,WAIQA,UAJR;AAAA,SAIoBC,UAJpB,WAIoBA,UAJpB;AAAA,SAIgCjB,gBAJhC,WAIgCA,gBAJhC;AAAA,SAIkDH,SAJlD,WAIkDA,SAJlD;AAAA,SAKd8B,KALc,WAKdA,KALc;;AAOhB,YACE;AACE,kBAAW9B,SADb;AAEE,kBAAcF,SAAd,WAFF;AAGE,YAAK,KAAKmC,YAHZ;AAIE,cAAO,KAAKwB,KAAL,CAAWxD,KAJpB;AAKE,iBAAU,KAAKuC,aALjB;AAME,gBAAS,KAAKE,YANhB;AAOE,yBAAkBvC,gBAPpB;AAQE,iBAAUe,QARZ;AASE,mBAAYC,UATd;AAUE,mBAAYC,UAVd;AAWE,cAAO,KAAKyB,KAXd;AAYE,mBAAYvC,UAZd;AAaE,eAAQ,KAAK8C,SAAL,EAbV;AAcE,oBAAapC,WAdf;AAeE,sBAAeO,aAfjB;AAgBE,wBAAiBC,eAhBnB;AAiBE,wBAAiBC,eAjBnB;AAkBE,4BAAqBC,mBAlBvB;AAmBE,cAAOI;AAnBT,OADF;AAuBD,IAzJ8B;AA2J/Ba,UA3J+B,mBA2JvBnC,IA3JuB,EA2JjBkD,QA3JiB,EA2JP;AAAA,mBACM,KAAKvB,KADX;AAAA,SACdP,MADc,WACdA,MADc;AAAA,SACNC,OADM,WACNA,OADM;;AAEtB,SAAI,KAAK4B,KAAL,CAAWjD,IAAX,KAAoBA,IAAxB,EAA8B;AAC5B,YAAK8B,QAAL,CAAc;AACZ9B;AADY,QAAd,EAEGkD,QAFH;AAGA,WAAMC,QAAQ;AACZnD;AADY,QAAd;AAGA,WAAIA,IAAJ,EAAU;AACRoB,gBAAO+B,KAAP;AACD,QAFD,MAEO;AACL9B,iBAAQ8B,KAAR;AACD;AACF;AACF,IA1K8B;AA4K/BC,SA5K+B,oBA4KtB;AAAA,mBAKH,KAAKzB,KALF;AAAA,SAELrC,SAFK,WAELA,SAFK;AAAA,SAEMkB,WAFN,WAEMA,WAFN;AAAA,SAEmBL,SAFnB,WAEmBA,SAFnB;AAAA,SAE8BD,KAF9B,WAE8BA,KAF9B;AAAA,SAGLN,QAHK,WAGLA,QAHK;AAAA,SAGKS,cAHL,WAGKA,cAHL;AAAA,SAGqBQ,KAHrB,WAGqBA,KAHrB;AAAA,SAG4BC,SAH5B,WAG4BA,SAH5B;AAAA,SAGuCJ,QAHvC,WAGuCA,QAHvC;AAAA,SAILE,UAJK,WAILA,UAJK;AAAA,SAION,iBAJP,WAIOA,iBAJP;AAAA,kBAMiB,KAAK2C,KANtB;AAAA,SAMCjD,IAND,UAMCA,IAND;AAAA,SAMOP,KANP,UAMOA,KANP;;AAOP,SAAI4D,uBAAJ;AACA,SAAI,CAAC3C,QAAD,IAAa,CAACE,UAAlB,EAA8B;AAC5ByC,wBAAoB/D,SAApB;AACD;AACD,YACE;AAAA;AAAA;AACE,oBAAcA,SAAd,WADF;AAEE,yBAAgB+D,cAFlB;AAGE,gBAAO,KAAKL,eAAL,EAHT;AAIE,qBAAY9C,KAJd;AAKE,gDALF;AAME,yBAAgBC,SANlB;AAOE,iBAAQP,WAAW,EAAX,GAAgB,CAAC,OAAD,CAP1B;AAQE,iCARF;AASE,4BAAmBU,iBATrB;AAUE,8BAAqBD,cAVvB;AAWE,uBAAcL,IAXhB;AAYE,+BAAsB,KAAKoC;AAZ7B;AAcE;AAAA;AAAA,WAAM,WAAc9C,SAAd,SAA2BwB,SAAjC,EAA8C,OAAOD,KAArD;AACE;AACE,sBAAcvB,SAAd,WADF;AAEE,gBAAI,QAFN,EAEe,MAAK,MAFpB,EAE2B,aAAakB,WAFxC;AAGE,yBAHF;AAIE,sBAAW,KAAKiC,SAJlB;AAKE,qBAAU7C,QALZ,EAKsB,OAAOH,SAASA,MAAMgB,MAAN,CAAa,KAAKmC,SAAL,EAAb,CAAT,IAA2C;AALxE,WADF;AAQE,iDAAM,WAActD,SAAd,UAAN;AARF;AAdF,MADF;AA2BD;AAlN8B,EAAlB,CAAf;;mBAqNeH,M;;;;;;;AClOf;;AAEA,2C;;;;;;ACFA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA,+BAA8B;AAC9B;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACzdA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,kBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;ACtBA,mBAAkB,yD;;;;;;ACAlB;AACA,yD;;;;;;ACDA;AACA;;AAEA,2CAA0C,iCAAoC,E;;;;;;ACH9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE;AACA,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,gBAAe;AACf,iBAAgB;AAChB,0B;;;;;;AC5DA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;AACA;AACA;AACA,G;;;;;;ACfA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,G;;;;;;ACFA;AACA,uEAAsE,gBAAgB,UAAU,GAAG;AACnG,EAAC,E;;;;;;ACFD;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,oBAAmB,sCAAsC;AACzD,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC,W;;;;;;AChCD;AACA;AACA;;AAEA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,WAAW,eAAe;AAC/B;AACA,MAAK;AACL;AACA,G;;;;;;ACpBA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA,c;;;;;;ACHA,0C;;;;;;ACAA,eAAc,sB;;;;;;ACAd;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;ACZA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,qC;;;;;;ACxBA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;ACpCA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAqD;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACrRA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;AC9DA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,sBAAsB;AAChD;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACjOA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,yCAAwC;;AAExC,qC;;;;;;ACdA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,QAAO;AACP,qCAAoC;;AAEpC;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACzJA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;ACzNA;;AAEA;AACA;AACA,EAAC;;AAED,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,kBAAkB;AAC/B;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,UAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAkE,cAAc;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,wCAAuC;AACvC,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA,uEAAsE,eAAe;AACrF;AACA;;AAEA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA,qC;;;;;;AC7iBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,E;;;;;;AC7GA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA2B,cAAc;AACzC,4BAA2B,cAAc,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACpDA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;AC3EA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qC;;;;;;ACtDA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACnCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACnCA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACvCA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,qC;;;;;;ACXA;;AAEA;AACA,2C;;;;;;ACHA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,4CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAkG;AAClG,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACtUA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA,E;;;;;;ACpHA;;AAEA;AACA;AACA,EAAC;;AAED,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACzGA;;AAEA;AACA;AACA,EAAC;;AAED,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA,qC;;;;;;AC7LA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,qC;;;;;;ACvFA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,cAAc;AACzB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9LA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,G;;;;;;ACNA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,qC;;;;;;AC1BA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS,kEAAkE;AAC3E;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACnDA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA,qC;;;;;;AC/CA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;ACdA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;AACA,sCAAqC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AClCA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,qC;;;;;;;;;;;;;;;;AC7FA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,UAASJ,IAAT,GAAgB,CACf;;AAED,UAASuE,eAAT,CAAyBC,MAAzB,EAAiCC,eAAjC,EAAkDtC,mBAAlD,EAAuE;AACrE,OAAMuC,MAAM,EAAZ;AACA,QAAK,IAAIhE,QAAQ,CAAjB,EAAoBA,QAAQ8D,MAA5B,EAAoC9D,OAApC,EAA6C;AAC3C,SAAI,CAAC+D,eAAD,IAAoBA,gBAAgBE,OAAhB,CAAwBjE,KAAxB,IAAiC,CAArD,IAA0D,CAACyB,mBAA/D,EAAoF;AAClFuC,WAAIE,IAAJ,CAASlE,KAAT;AACD;AACF;AACD,UAAOgE,GAAP;AACD;;AAED,KAAMG,QAAQ,gBAAMxE,WAAN,CAAkB;AAAA;;AAC9BC,cAAW;AACTG,gBAAW,iBAAUD,MADZ;AAETD,gBAAW,iBAAUC,MAFZ;AAGTuB,gBAAW,iBAAUvB,MAHZ;AAITI,uBAAkB,iBAAUD,MAJnB;AAKTD,YAAO,iBAAUC,MALR;AAMTc,kBAAa,iBAAUjB,MANd;AAOTkB,aAAQ,iBAAUlB,MAPT;AAQTwB,oBAAe,iBAAUR,IARhB;AASTS,sBAAiB,iBAAUT,IATlB;AAUTU,sBAAiB,iBAAUV,IAVlB;AAWTW,0BAAqB,iBAAUrB,IAXtB;AAYTsB,eAAU,iBAAUZ,IAZX;AAaT8B,YAAO,iBAAU9B,IAbR;AAcTT,iBAAY,iBAAUD,IAdb;AAeTa,eAAU,iBAAUb,IAfX;AAgBTc,iBAAY,iBAAUd,IAhBb;AAiBTe,iBAAY,iBAAUf,IAjBb;AAkBTgE,cAAS,iBAAUtD,IAlBV;AAmBTe,YAAO,iBAAUf;AAnBR,IADmB;;AAuB9BgB,kBAvB8B,6BAuBZ;AAChB,YAAO;AACLjC,kBAAW,sBADN;AAEL6B,iBAAUpC,IAFL;AAGL8E,gBAAS9E,IAHJ;AAILgC,sBAAehC,IAJV;AAKLiC,wBAAiBjC,IALZ;AAMLkC,wBAAiBlC,IANZ;AAOLY,yBAAkB,uBAPb;AAQL2B,cAAOvC;AARF,MAAP;AAUD,IAlC6B;AAoC9ByC,kBApC8B,6BAoCZ;AAChB,YAAO;AACL/B,cAAO,KAAKkC,KAAL,CAAWlC,KADb;AAELqE,uBAAgB;AAFX,MAAP;AAID,IAzC6B;AA2C9BlC,4BA3C8B,qCA2CJC,SA3CI,EA2CO;AACnC,SAAMpC,QAAQoC,UAAUpC,KAAxB;AACA,SAAIA,KAAJ,EAAW;AACT,YAAKqC,QAAL,CAAc;AACZrC;AADY,QAAd;AAGD;AACF,IAlD6B;AAoD9B0B,WApD8B,oBAoDrB4C,QApDqB,EAoDX;AACjB,UAAKjC,QAAL,CAAc,EAAErC,OAAOsE,QAAT,EAAd;AACA,UAAKpC,KAAL,CAAWR,QAAX,CAAoB4C,QAApB;AACD,IAvD6B;AAyD9BF,UAzD8B,qBAyDpB;AACR,UAAKlC,KAAL,CAAWkC,OAAX;AACD,IA3D6B;AA6D9BG,6BA7D8B,sCA6DHC,kBA7DG,EA6DiB;AAC7C,UAAKnC,QAAL,CAAc,EAAEmC,sCAAF,EAAd;AACD,IA/D6B;AAiE9BC,QAjE8B,mBAiEtB;AACN,UAAKvC,KAAL,CAAWU,KAAX;AACD,IAnE6B;AAqE9Be,SArE8B,oBAqErB;AAAA;;AAAA,kBAKH,KAAKzB,KALF;AAAA,SAELrC,SAFK,UAELA,SAFK;AAAA,SAEMwB,SAFN,UAEMA,SAFN;AAAA,SAEiBN,WAFjB,UAEiBA,WAFjB;AAAA,SAE8BO,aAF9B,UAE8BA,aAF9B;AAAA,SAE6CC,eAF7C,UAE6CA,eAF7C;AAAA,SAGLC,eAHK,UAGLA,eAHK;AAAA,SAGYC,mBAHZ,UAGYA,mBAHZ;AAAA,SAGiCpB,UAHjC,UAGiCA,UAHjC;AAAA,SAG6CY,QAH7C,UAG6CA,QAH7C;AAAA,SAGuDC,UAHvD,UAGuDA,UAHvD;AAAA,SAGmEC,UAHnE,UAGmEA,UAHnE;AAAA,SAILH,MAJK,UAILA,MAJK;AAAA,SAIGd,gBAJH,UAIGA,gBAJH;AAAA,SAIqBH,SAJrB,UAIqBA,SAJrB;AAAA,SAIgC6C,KAJhC,UAIgCA,KAJhC;AAAA,SAIuCf,KAJvC,UAIuCA,KAJvC;AAAA,kBAQH,KAAK2B,KARF;AAAA,SAOLxD,KAPK,UAOLA,KAPK;AAAA,SAOEwE,kBAPF,UAOEA,kBAPF;;AASP,SAAME,sBAAsBpD,eAA5B;AACA,SAAMqD,wBAAwBpD,gBAAgBvB,QAAQA,MAAM4E,IAAN,EAAR,GAAuB,IAAvC,CAA9B;AACA,SAAMC,wBAAwBrD,gBAAgBxB,QAAQA,MAAM4E,IAAN,EAAR,GAAuB,IAAvC,EAC5B5E,QAAQA,MAAM8E,MAAN,EAAR,GAAyB,IADG,CAA9B;AAEA,SAAMC,cAAclB,gBAAgB,EAAhB,EAAoBa,mBAApB,EAAyCjD,mBAAzC,CAApB;AACA,SAAMuD,gBAAgBnB,gBAAgB,EAAhB,EAAoBc,qBAApB,EAA2ClD,mBAA3C,CAAtB;AACA,SAAMwD,gBAAgBpB,gBAAgB,EAAhB,EAAoBgB,qBAApB,EAA2CpD,mBAA3C,CAAtB;;AAEA,YACE;AAAA;AAAA,SAAK,WAAW,wFAAiB5B,SAAjB,aAAqC,IAArC,8CAA4CwB,SAA5C,EAAwD,CAAC,CAACA,SAA1D,gBAAhB;AACE;AACE,oBAAWtB,SADb;AAEE,oBAAWF,SAFb;AAGE,2BAAkBK,gBAHpB;AAIE,gBAAOF,KAJT;AAKE,6BAAoBwE,kBALtB;AAME,gBAAO5B,KANT;AAOE,iBAAQ5B,MAPV;AAQE,sBAAaD,WARf;AASE,sBAAagE,WATf;AAUE,wBAAeC,aAVjB;AAWE,wBAAeC,aAXjB;AAYE,wBAAe3D,aAZjB;AAaE,0BAAiBC,eAbnB;AAcE,0BAAiBC,eAdnB;AAeE,mBAAU,KAAKE,QAfjB;AAgBE,kBAAS,KAAK0C,OAhBhB;AAiBE,qBAAY/D;AAjBd,SADF;AAoBE;AACE,oBAAWR,SADb;AAEE,gBAAOG,KAFT;AAGE,2BAAkBE,gBAHpB;AAIE,iBAAQc,MAJV;AAKE,mBAAU,KAAKU,QALjB;AAME,mBAAUT,QANZ;AAOE,qBAAYC,UAPd;AAQE,qBAAYC,UARd;AASE,sBAAa4D,WATf;AAUE,wBAAeC,aAVjB;AAWE,wBAAeC,aAXjB;AAYE,wBAAe3D,aAZjB;AAaE,0BAAiBC,eAbnB;AAcE,0BAAiBC,eAdnB;AAeE,qCAA4B,KAAK+C;AAfnC,SApBF;AAqCG1C,aAAM,IAAN;AArCH,MADF;AAyCD;AA/H6B,EAAlB,CAAd;;mBAkIesC,K;;;;;;;ACrJf;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;;AAEA;AACA,G;;;;;;ACvBA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,uEAAuE,2CAA0C,E;;;;;;;;;;;;ACFjH;;;;AACA;;;;;;AAEA,KAAMe,SAAS,gBAAMvF,WAAN,CAAkB;AAAA;;AAC/BC,cAAW;AACToB,aAAQ,iBAAUlB,MADT;AAETD,gBAAW,iBAAUC,MAFZ;AAGTqF,mBAAc,iBAAUrE,IAHf;AAITC,kBAAa,iBAAUjB,MAJd;AAKTC,gBAAW,iBAAUD,MALZ;AAMTE,YAAO,iBAAUC,MANR;AAOT8E,kBAAa,iBAAUK,KAPd;AAQTJ,oBAAe,iBAAUI,KARhB;AASTH,oBAAe,iBAAUG,KAThB;AAUT9D,oBAAe,iBAAUR,IAVhB;AAWTS,sBAAiB,iBAAUT,IAXlB;AAYTU,sBAAiB,iBAAUV,IAZlB;AAaTY,eAAU,iBAAUZ,IAbX;AAcTsD,cAAS,iBAAUtD,IAdV;AAeT8B,YAAO,iBAAU9B,IAfR;AAgBTT,iBAAY,iBAAUD,IAhBb;AAiBTF,uBAAkB,iBAAUD,MAjBnB;AAkBTuE,yBAAoB,iBAAU1E;AAlBrB,IADoB;;AAsB/BiC,kBAtB+B,6BAsBb;AAAA,kBACU,KAAKG,KADf;AAAA,SACRlC,KADQ,UACRA,KADQ;AAAA,SACDgB,MADC,UACDA,MADC;;AAEhB,YAAO;AACLqE,YAAKrF,SAASA,MAAMgB,MAAN,CAAaA,MAAb,CAAT,IAAiC,EADjC;AAELsE,gBAAS;AAFJ,MAAP;AAID,IA5B8B;AA8B/BnD,4BA9B+B,qCA8BLC,SA9BK,EA8BM;AAAA,SAC3BpC,KAD2B,GACToC,SADS,CAC3BpC,KAD2B;AAAA,SACpBgB,MADoB,GACToB,SADS,CACpBpB,MADoB;;AAEnC,UAAKqB,QAAL,CAAc;AACZgD,YAAKrF,SAASA,MAAMgB,MAAN,CAAaA,MAAb,CAAT,IAAiC,EAD1B;AAEZsE,gBAAS;AAFG,MAAd;AAID,IApC8B;AAsC/BC,gBAtC+B,yBAsCjB7B,KAtCiB,EAsCV;AACnB,SAAM2B,MAAM3B,MAAM8B,MAAN,CAAaxF,KAAzB;AACA,UAAKqC,QAAL,CAAc;AACZgD;AADY,MAAd;AAFmB,mBASf,KAAKnD,KATU;AAAA,SAMjBlB,MANiB,WAMjBA,MANiB;AAAA,SAMT+D,WANS,WAMTA,WANS;AAAA,SAMIC,aANJ,WAMIA,aANJ;AAAA,SAMmBC,aANnB,WAMmBA,aANnB;AAAA,SAOjB3D,aAPiB,WAOjBA,aAPiB;AAAA,SAOFC,eAPE,WAOFA,eAPE;AAAA,SAQjBC,eARiB,WAQjBA,eARiB;AAAA,SAQAE,QARA,WAQAA,QARA;AAAA,SAQUrB,UARV,WAQUA,UARV;;;AAWnB,SAAIgF,GAAJ,EAAS;AACP,WAAMI,gBAAgB,KAAKvD,KAAL,CAAWlC,KAAjC;AACA,WAAMA,QAAQ,KAAK0F,aAAL,GAAqBC,KAArB,EAAd;AACA,WAAMC,SAAS,sBAAOP,GAAP,EAAYrE,MAAZ,EAAoB,IAApB,CAAf;AACA,WAAI,CAAC4E,OAAOC,OAAP,EAAL,EAAuB;AACrB,cAAKxD,QAAL,CAAc;AACZiD,oBAAS;AADG,UAAd;AAGA;AACD;AACDtF,aAAM4E,IAAN,CAAWgB,OAAOhB,IAAP,EAAX,EAA0BE,MAA1B,CAAiCc,OAAOd,MAAP,EAAjC,EAAkDgB,MAAlD,CAAyDF,OAAOE,MAAP,EAAzD;;AAEA;AACA,WACEf,YAAYd,OAAZ,CAAoBjE,MAAM4E,IAAN,EAApB,IAAoC,CAApC,IACAI,cAAcf,OAAd,CAAsBjE,MAAM8E,MAAN,EAAtB,IAAwC,CADxC,IAEAG,cAAchB,OAAd,CAAsBjE,MAAM8F,MAAN,EAAtB,IAAwC,CAH1C,EAIE;AACA,cAAKzD,QAAL,CAAc;AACZiD,oBAAS;AADG,UAAd;AAGA;AACD;;AAED;AACA,WAAMZ,sBAAsBpD,eAA5B;AACA,WAAMqD,wBAAwBpD,gBAAgBvB,MAAM4E,IAAN,EAAhB,CAA9B;AACA,WAAMC,wBAAwBrD,gBAAgBxB,MAAM4E,IAAN,EAAhB,EAA8B5E,MAAM8E,MAAN,EAA9B,CAA9B;AACA,WACGJ,uBAAuBA,oBAAoBT,OAApB,CAA4BjE,MAAM4E,IAAN,EAA5B,KAA6C,CAArE,IACCD,yBAAyBA,sBAAsBV,OAAtB,CAA8BjE,MAAM8E,MAAN,EAA9B,KAAiD,CAD3E,IAECD,yBAAyBA,sBAAsBZ,OAAtB,CAA8BjE,MAAM8F,MAAN,EAA9B,KAAiD,CAH7E,EAIE;AACA,cAAKzD,QAAL,CAAc;AACZiD,oBAAS;AADG,UAAd;AAGA;AACD;;AAED,WAAIG,aAAJ,EAAmB;AACjB,aACEA,cAAcb,IAAd,OAAyB5E,MAAM4E,IAAN,EAAzB,IACAa,cAAcX,MAAd,OAA2B9E,MAAM8E,MAAN,EAD3B,IAEAW,cAAcK,MAAd,OAA2B9F,MAAM8F,MAAN,EAH7B,EAIE;AACA;AACA,eAAMC,eAAeN,cAAcE,KAAd,EAArB;AACAI,wBAAanB,IAAb,CAAkB5E,MAAM4E,IAAN,EAAlB;AACAmB,wBAAajB,MAAb,CAAoB9E,MAAM8E,MAAN,EAApB;AACAiB,wBAAaD,MAAb,CAAoB9F,MAAM8F,MAAN,EAApB;AACApE,oBAASqE,YAAT;AACD;AACF,QAbD,MAaO,IAAIN,kBAAkBzF,KAAtB,EAA6B;AAClC0B,kBAAS1B,KAAT;AACD;AACF,MAvDD,MAuDO,IAAIK,UAAJ,EAAgB;AACrBqB,gBAAS,IAAT;AACD,MAFM,MAEA;AACL,YAAKW,QAAL,CAAc;AACZiD,kBAAS;AADG,QAAd;AAGA;AACD;;AAED,UAAKjD,QAAL,CAAc;AACZiD,gBAAS;AADG,MAAd;AAGD,IApH8B;AAsH/BtC,YAtH+B,qBAsHrBC,CAtHqB,EAsHlB;AACX,SAAIA,EAAEC,OAAF,KAAc,EAAlB,EAAsB;AACpB,YAAKhB,KAAL,CAAWU,KAAX;AACD;AACF,IA1H8B;AA4H/BwB,UA5H+B,qBA4HrB;AACR,UAAK/B,QAAL,CAAc,EAAEgD,KAAK,EAAP,EAAd;AACA,UAAKnD,KAAL,CAAWkC,OAAX;AACD,IA/H8B;AAiI/B4B,iBAjI+B,4BAiId;AAAA,mBACmB,KAAK9D,KADxB;AAAA,SACPrC,SADO,WACPA,SADO;AAAA,SACIQ,UADJ,WACIA,UADJ;;AAEf,SAAI,CAACA,UAAL,EAAiB;AACf,cAAO,IAAP;AACD;AACD,YAAQ;AACN,kBAAcR,SAAd,eADM;AAEN,aAAK,QAFC;AAGN,cAAO,KAAKqC,KAAL,CAAWnC,SAHZ;AAIN,oBAAa,KAAKqE;AAJZ,OAAR;AAMD,IA5I8B;AA8I/BsB,gBA9I+B,2BA8If;AACd,YAAO,KAAKxD,KAAL,CAAWlC,KAAX,IAAoB,KAAKkC,KAAL,CAAWhC,gBAAtC;AACD,IAhJ8B;AAkJ/B+F,WAlJ+B,sBAkJpB;AAAA,mBAC0B,KAAK/D,KAD/B;AAAA,SACDrC,SADC,WACDA,SADC;AAAA,SACUkB,WADV,WACUA,WADV;AAAA,kBAEgB,KAAKyC,KAFrB;AAAA,SAED8B,OAFC,UAEDA,OAFC;AAAA,SAEQD,GAFR,UAEQA,GAFR;;AAGT,SAAMa,eAAeZ,UAAazF,SAAb,sBAAyC,EAA9D;AACA,YACE;AACE,kBAAcA,SAAd,gBAAkCqG,YADpC;AAEE,YAAI,OAFN;AAGE,kBAAW,KAAKlD,SAHlB;AAIE,cAAOqC,GAJT;AAKE,oBAAatE,WALf;AAME,iBAAU,KAAKwE;AANjB,OADF;AAUD,IAhK8B;AAkK/B5B,SAlK+B,oBAkKtB;AAAA,SACC9D,SADD,GACe,KAAKqC,KADpB,CACCrC,SADD;;AAEP,YACE;AAAA;AAAA,SAAK,WAAcA,SAAd,gBAAL;AACG,YAAKoG,QAAL,EADH;AAEG,YAAKD,cAAL;AAFH,MADF;AAMD;AA1K8B,EAAlB,CAAf;;mBA6Ked,M;;;;;;;;;;;;;AChLf;;;;AACA;;;;;;AAEA,KAAMiB,eAAe,SAAfA,YAAe,CAACC,MAAD,EAASrC,eAAT,EAA6B;AAChD,OAAI/D,aAAWoG,MAAf;AACA,OAAIA,SAAS,EAAb,EAAiB;AACfpG,mBAAYoG,MAAZ;AACD;;AAED,OAAIjG,WAAW,KAAf;AACA,OAAI4D,mBAAmBA,gBAAgBE,OAAhB,CAAwBmC,MAAxB,KAAmC,CAA1D,EAA6D;AAC3DjG,gBAAW,IAAX;AACD;;AAED,UAAO;AACLH,iBADK;AAELG;AAFK,IAAP;AAID,EAfD;;AAiBA,KAAMkG,WAAW,gBAAM1G,WAAN,CAAkB;AAAA;;AACjCC,cAAW;AACToB,aAAQ,iBAAUlB,MADT;AAETI,uBAAkB,iBAAUD,MAFnB;AAGTJ,gBAAW,iBAAUC,MAHZ;AAITE,YAAO,iBAAUC,MAJR;AAKTyB,eAAU,iBAAUZ,IALX;AAMTG,eAAU,iBAAUb,IANX;AAOTc,iBAAY,iBAAUd,IAPb;AAQTe,iBAAY,iBAAUf,IARb;AAST2E,kBAAa,iBAAUK,KATd;AAUTJ,oBAAe,iBAAUI,KAVhB;AAWTH,oBAAe,iBAAUG,KAXhB;AAYT9D,oBAAe,iBAAUR,IAZhB;AAaTS,sBAAiB,iBAAUT,IAblB;AAcTU,sBAAiB,iBAAUV,IAdlB;AAeTyD,iCAA4B,iBAAUzD;AAf7B,IADsB;;AAmBjCwF,eAnBiC,wBAmBpBC,IAnBoB,EAmBdC,SAnBc,EAmBH;AAAA,kBACW,KAAKtE,KADhB;AAAA,SACpBR,QADoB,UACpBA,QADoB;AAAA,SACVxB,gBADU,UACVA,gBADU;;AAE5B,SAAMF,QAAQ,CAAC,KAAKkC,KAAL,CAAWlC,KAAX,IAAoBE,gBAArB,EAAuCyF,KAAvC,EAAd;AACA,SAAIY,SAAS,MAAb,EAAqB;AACnBvG,aAAM4E,IAAN,CAAW4B,SAAX;AACD,MAFD,MAEO,IAAID,SAAS,QAAb,EAAuB;AAC5BvG,aAAM8E,MAAN,CAAa0B,SAAb;AACD,MAFM,MAEA;AACLxG,aAAM8F,MAAN,CAAaU,SAAb;AACD;AACD9E,cAAS1B,KAAT;AACD,IA9BgC;AAgCjCyG,qBAhCiC,8BAgCdC,KAhCc,EAgCP;AACxB,UAAKxE,KAAL,CAAWqC,0BAAX,CAAsCmC,KAAtC;AACD,IAlCgC;AAoCjCC,gBApCiC,yBAoCnB/B,IApCmB,EAoCb;AAAA,mBAC0C,KAAK1C,KAD/C;AAAA,SACVrC,SADU,WACVA,SADU;AAAA,SACCkF,WADD,WACCA,WADD;AAAA,SACczD,aADd,WACcA,aADd;AAAA,SAC6BL,QAD7B,WAC6BA,QAD7B;;AAElB,SAAI,CAACA,QAAL,EAAe;AACb,cAAO,IAAP;AACD;AACD,SAAM8C,kBAAkBzC,eAAxB;;AAEA,YACE;AACE,kBAAWzB,SADb;AAEE,gBAASkF,YAAY6B,GAAZ,CAAgB;AAAA,gBAAUT,aAAaC,MAAb,EAAqBrC,eAArB,CAAV;AAAA,QAAhB,CAFX;AAGE,sBAAegB,YAAYd,OAAZ,CAAoBW,IAApB,CAHjB;AAIE,aAAK,MAJP;AAKE,iBAAU,KAAK0B,YALjB;AAME,qBAAc,KAAKG,kBAAL,CAAwBxE,IAAxB,CAA6B,IAA7B,EAAmC,MAAnC;AANhB,OADF;AAUD,IArDgC;AAuDjC4E,kBAvDiC,2BAuDjB/B,MAvDiB,EAuDT;AAAA,mBAC8D,KAAK5C,KADnE;AAAA,SACdrC,SADc,WACdA,SADc;AAAA,SACHmF,aADG,WACHA,aADG;AAAA,SACYzD,eADZ,WACYA,eADZ;AAAA,SAC6BrB,gBAD7B,WAC6BA,gBAD7B;AAAA,SAC+CgB,UAD/C,WAC+CA,UAD/C;;AAEtB,SAAI,CAACA,UAAL,EAAiB;AACf,cAAO,IAAP;AACD;AACD,SAAMlB,QAAQ,KAAKkC,KAAL,CAAWlC,KAAX,IAAoBE,gBAAlC;AACA,SAAM6D,kBAAkBxC,gBAAgBvB,MAAM4E,IAAN,EAAhB,CAAxB;;AAEA,YACE;AACE,kBAAW/E,SADb;AAEE,gBAASmF,cAAc4B,GAAd,CAAkB;AAAA,gBAAUT,aAAaC,MAAb,EAAqBrC,eAArB,CAAV;AAAA,QAAlB,CAFX;AAGE,sBAAeiB,cAAcf,OAAd,CAAsBa,MAAtB,CAHjB;AAIE,aAAK,QAJP;AAKE,iBAAU,KAAKwB,YALjB;AAME,qBAAc,KAAKG,kBAAL,CAAwBxE,IAAxB,CAA6B,IAA7B,EAAmC,QAAnC;AANhB,OADF;AAUD,IAzEgC;AA2EjC6E,kBA3EiC,2BA2EjBhB,MA3EiB,EA2ET;AAAA,mBAC8D,KAAK5D,KADnE;AAAA,SACdrC,SADc,WACdA,SADc;AAAA,SACHoF,aADG,WACHA,aADG;AAAA,SACYzD,eADZ,WACYA,eADZ;AAAA,SAC6BL,UAD7B,WAC6BA,UAD7B;AAAA,SACyCjB,gBADzC,WACyCA,gBADzC;;AAEtB,SAAI,CAACiB,UAAL,EAAiB;AACf,cAAO,IAAP;AACD;AACD,SAAMnB,QAAQ,KAAKkC,KAAL,CAAWlC,KAAX,IAAoBE,gBAAlC;AACA,SAAM6D,kBAAkBvC,gBAAgBxB,MAAM4E,IAAN,EAAhB,EAA8B5E,MAAM8E,MAAN,EAA9B,CAAxB;;AAEA,YACE;AACE,kBAAWjF,SADb;AAEE,gBAASoF,cAAc2B,GAAd,CAAkB;AAAA,gBAAUT,aAAaC,MAAb,EAAqBrC,eAArB,CAAV;AAAA,QAAlB,CAFX;AAGE,sBAAekB,cAAchB,OAAd,CAAsB6B,MAAtB,CAHjB;AAIE,aAAK,QAJP;AAKE,iBAAU,KAAKQ,YALjB;AAME,qBAAc,KAAKG,kBAAL,CAAwBxE,IAAxB,CAA6B,IAA7B,EAAmC,QAAnC;AANhB,OADF;AAUD,IA7FgC;AA+FjC0B,SA/FiC,oBA+FxB;AAAA,mBACiC,KAAKzB,KADtC;AAAA,SACCrC,SADD,WACCA,SADD;AAAA,SACYK,gBADZ,WACYA,gBADZ;;AAEP,SAAMF,QAAQ,KAAKkC,KAAL,CAAWlC,KAAX,IAAoBE,gBAAlC;AACA,YACE;AAAA;AAAA,SAAK,WAAcL,SAAd,cAAL;AACG,YAAK8G,aAAL,CAAmB3G,MAAM4E,IAAN,EAAnB,CADH;AAEG,YAAKiC,eAAL,CAAqB7G,MAAM8E,MAAN,EAArB,CAFH;AAGG,YAAKgC,eAAL,CAAqB9G,MAAM8F,MAAN,EAArB;AAHH,MADF;AAOD;AAzGgC,EAAlB,CAAjB;;mBA4GeO,Q;;;;;;;;;;;;;;;;;AChIf;;;;AACA;;;;AACA;;;;;;AAEA,KAAMU,WAAW,SAAXA,QAAW,CAACC,OAAD,EAAUC,EAAV,EAAcC,QAAd,EAA2B;AAC1C,OAAMC,wBAAwBC,OAAOD,qBAAP,IAC5B,SAASE,4BAAT,GAAwC;AACtC,YAAOC,WAAWC,UAAU,CAAV,CAAX,EAAyB,EAAzB,CAAP;AACD,IAHH;AAIA;AACA,OAAIL,YAAY,CAAhB,EAAmB;AACjBF,aAAQQ,SAAR,GAAoBP,EAApB;AACA;AACD;AACD,OAAMQ,aAAaR,KAAKD,QAAQQ,SAAhC;AACA,OAAME,UAAUD,aAAaP,QAAb,GAAwB,EAAxC;;AAEAC,yBAAsB,YAAM;AAC1BH,aAAQQ,SAAR,GAAoBR,QAAQQ,SAAR,GAAoBE,OAAxC;AACA,SAAIV,QAAQQ,SAAR,KAAsBP,EAA1B,EAA8B;AAC9BF,cAASC,OAAT,EAAkBC,EAAlB,EAAsBC,WAAW,EAAjC;AACD,IAJD;AAKD,EAlBD;;AAoBA,KAAMS,SAAS,gBAAMhI,WAAN,CAAkB;AAAA;;AAC/BC,cAAW;AACTC,gBAAW,iBAAUC,MADZ;AAET8H,cAAS,iBAAUxC,KAFV;AAGTyC,oBAAe,iBAAUC,MAHhB;AAITvB,WAAM,iBAAUzG,MAJP;AAKTiI,eAAU,iBAAUjH,IALX;AAMTkH,mBAAc,iBAAUlH;AANf,IADoB;;AAU/BmH,oBAV+B,+BAUX;AAClB;AACA,UAAKC,gBAAL,CAAsB,CAAtB;AACD,IAb8B;AAe/BC,qBAf+B,8BAeZC,SAfY,EAeD;AAC5B;AACA,SAAIA,UAAUP,aAAV,KAA4B,KAAK3F,KAAL,CAAW2F,aAA3C,EAA0D;AACxD,YAAKK,gBAAL,CAAsB,GAAtB;AACD;AACF,IApB8B;AAsB/BH,WAtB+B,oBAsBtB/H,KAtBsB,EAsBf;AAAA,kBACa,KAAKkC,KADlB;AAAA,SACN6F,QADM,UACNA,QADM;AAAA,SACIxB,IADJ,UACIA,IADJ;;AAEdwB,cAASxB,IAAT,EAAevG,KAAf;AACD,IAzB8B;AA2B/BqI,aA3B+B,wBA2BlB;AAAA;;AAAA,mBACmC,KAAKnG,KADxC;AAAA,SACH0F,OADG,WACHA,OADG;AAAA,SACMC,aADN,WACMA,aADN;AAAA,SACqBhI,SADrB,WACqBA,SADrB;;AAEX,YAAO+H,QAAQhB,GAAR,CAAY,UAACvD,IAAD,EAAOiF,KAAP,EAAiB;AAAA;;AAClC,WAAMC,MAAM,wFACN1I,SADM,8BAC+BgI,kBAAkBS,KADjD,8CAENzI,SAFM,8BAE+BwD,KAAKlD,QAFpC,gBAAZ;AAIA,WAAIqI,UAAU,IAAd;AACA,WAAI,CAACnF,KAAKlD,QAAV,EAAoB;AAClBqI,mBAAU,MAAKT,QAAL,CAAc9F,IAAd,QAAyB,CAACoB,KAAKrD,KAA/B,CAAV;AACD;AACD,cAAQ;AAAA;AAAA;AACN,sBAAWuI,GADL;AAEN,gBAAKD,KAFC;AAGN,oBAASE,OAHH;AAIN,qBAAUnF,KAAKlD;AAJT;AAMLkD,cAAKrD;AANA,QAAR;AAQD,MAjBM,CAAP;AAkBD,IA/C8B;AAiD/BkI,mBAjD+B,4BAiDdhB,QAjDc,EAiDJ;AACzB;AACA,SAAMuB,SAAS,mBAASC,WAAT,CAAqB,IAArB,CAAf;AACA,SAAMC,OAAO,mBAASD,WAAT,CAAqB,KAAK7F,IAAL,CAAU8F,IAA/B,CAAb;AACA,SAAI,CAACA,IAAL,EAAW;AACT;AACD;AACD,SAAIL,QAAQ,KAAKpG,KAAL,CAAW2F,aAAvB;AACA,SAAIS,QAAQ,CAAZ,EAAe;AACbA,eAAQ,CAAR;AACD;AACD,SAAMM,YAAYD,KAAKE,QAAL,CAAcP,KAAd,CAAlB;AACA,SAAMrB,KAAK2B,UAAUE,SAArB;AACA/B,cAAS0B,MAAT,EAAiBxB,EAAjB,EAAqBC,QAArB;AACD,IA/D8B;AAiE/BvD,SAjE+B,oBAiEtB;AACP,SAAI,KAAKzB,KAAL,CAAW0F,OAAX,CAAmB9D,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,cAAO,IAAP;AACD;;AAHM,SAKCjE,SALD,GAKe,KAAKqC,KALpB,CAKCrC,SALD;;;AAOP,YACE;AAAA;AAAA;AACE,oBAAcA,SAAd,YADF;AAEE,uBAAc,KAAKqC,KAAL,CAAW8F;AAF3B;AAIE;AAAA;AAAA,WAAI,KAAI,MAAR;AAAgB,cAAKK,UAAL;AAAhB;AAJF,MADF;AAQD;AAhF8B,EAAlB,CAAf;;mBAmFeV,M;;;;;;;AC3Gf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAgB;;AAEhB;AACA;;AAEA,kBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,EAAC;;;;;;;;;;;;AC/CD,KAAMoB,qBAAqB;AACzBC,YAAS,CADgB;AAEzBC,YAAS;AAFgB,EAA3B;;AAKA,KAAMC,eAAe,CAAC,CAAD,EAAI,CAAJ,CAArB;;AAEA,KAAMC,aAAa;AACjBC,eAAY;AACVC,aAAQ,CAAC,IAAD,EAAO,IAAP,CADE;AAEVC,eAAUP,kBAFA;AAGVQ,aAAQ,CAAC,CAAD,EAAI,CAAC,CAAL,CAHE;AAIVL;AAJU,IADK;AAOjBM,gBAAa;AACXH,aAAQ,CAAC,IAAD,EAAO,IAAP,CADG;AAEXC,eAAUP,kBAFC;AAGXQ,aAAQ,CAAC,CAAD,EAAI,CAAC,CAAL,CAHG;AAIXL;AAJW,IAPI;AAajBO,aAAU;AACRJ,aAAQ,CAAC,IAAD,EAAO,IAAP,CADA;AAERC,eAAUP,kBAFF;AAGRQ,aAAQ,CAAC,CAAD,EAAI,CAAJ,CAHA;AAIRL;AAJQ,IAbO;AAmBjBQ,YAAS;AACPL,aAAQ,CAAC,IAAD,EAAO,IAAP,CADD;AAEPC,eAAUP,kBAFH;AAGPQ,aAAQ,CAAC,CAAD,EAAI,CAAJ,CAHD;AAIPL;AAJO;AAnBQ,EAAnB;;mBA2BeC,U","file":"common.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t5:0\n \t};\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + ({\"0\":\"disabled\",\"1\":\"format\",\"2\":\"hidden\",\"3\":\"pick-time\",\"4\":\"value-and-defaultValue\"}[chunkId]||chunkId) + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\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\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 67ffb40f5acf1f890f20","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/index.less\n// module id = 2\n// module chunks = 5","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/react.js\n// module id = 3\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactPureComponent = require('./ReactPureComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar onlyChild = require('./onlyChild');\nvar warning = require('fbjs/lib/warning');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (process.env.NODE_ENV !== 'production') {\n var warned = false;\n __spread = function () {\n process.env.NODE_ENV !== '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;\n warned = true;\n return _assign.apply(null, arguments);\n };\n}\n\nvar React = {\n\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactComponent,\n PureComponent: ReactPureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: ReactClass.createClass,\n createFactory: createFactory,\n createMixin: function (mixin) {\n // Currently a noop. Will be used to validate and trace mixins.\n return mixin;\n },\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nmodule.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/React.js\n// module id = 4\n// module chunks = 5","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.11.9@process/browser.js\n// module id = 5\n// module chunks = 5","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.4.1.0@object-assign/index.js\n// module id = 6\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func;\n var context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result;\n var keyPrefix = bookKeeping.keyPrefix;\n var func = bookKeeping.func;\n var context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactChildren.js\n// module id = 7\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar fiveArgumentPooler = function (a1, a2, a3, a4, a5) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4, a5);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4, a5);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler,\n fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/PooledClass.js\n// module id = 8\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reactProdInvariant\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/reactProdInvariant.js\n// module id = 9\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/invariant.js\n// module id = 10\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar warning = require('fbjs/lib/warning');\nvar canDefineProperty = require('./canDefineProperty');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n process.env.NODE_ENV !== '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;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n process.env.NODE_ENV !== '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;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allow us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {};\n var shadowChildren = Array.isArray(props.children) ? props.children.slice(0) : props.children;\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n if (canDefineProperty) {\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n });\n // self and source are DEV only properties.\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n });\n Object.defineProperty(element, '_shadowChildren', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: shadowChildren\n });\n // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n } else {\n element._store.validated = false;\n element._self = self;\n element._shadowChildren = shadowChildren;\n element._source = source;\n }\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\n */\nReactElement.createElement = function (type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\n */\nReactElement.createFactory = function (type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n return newElement;\n};\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\n */\nReactElement.cloneElement = function (element, config, children) {\n var propName;\n\n // Original props are copied\n var props = _assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n // Self is preserved since the owner is preserved.\n var self = element._self;\n // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE;\n\nmodule.exports = ReactElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactElement.js\n// module id = 11\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\n\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactCurrentOwner.js\n// module id = 12\n// module chunks = 5","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/warning.js\n// module id = 13\n// module chunks = 5","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/emptyFunction.js\n// module id = 14\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule canDefineProperty\n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n Object.defineProperty({}, 'x', { get: function () {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/canDefineProperty.js\n// module id = 15\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== '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;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n 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.';\n if (children._isReactElement) {\n 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.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== '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;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/traverseAllChildren.js\n// module id = 16\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getIteratorFn.js\n// module id = 17\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule KeyEscapeUtils\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/KeyEscapeUtils.js\n// module id = 18\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== '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;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'forceUpdate');\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function () {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nmodule.exports = ReactComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactComponent.js\n// module id = 19\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== '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;\n }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback) {},\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactNoopUpdateQueue.js\n// module id = 20\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/emptyObject.js\n// module id = 21\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPureComponent\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactPureComponent.js\n// module id = 22\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar keyMirror = require('fbjs/lib/keyMirror');\nvar keyOf = require('fbjs/lib/keyOf');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n /**\n * These methods may be defined only once by the class specification or mixin.\n */\n DEFINE_ONCE: null,\n /**\n * These methods may be defined by both the class specification and mixins.\n * Subsequent definitions will be chained. These methods must return void.\n */\n DEFINE_MANY: null,\n /**\n * These methods are overriding the base class.\n */\n OVERRIDE_BASE: null,\n /**\n * These methods are similar to DEFINE_MANY, except we assume they return\n * objects. We try to merge the keys of the return values of all the mixed in\n * functions. If there is a key conflict we throw.\n */\n DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: SpecPolicy.DEFINE_MANY,\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: SpecPolicy.DEFINE_MANY,\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @nosideeffects\n * @required\n */\n render: SpecPolicy.DEFINE_ONCE,\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n displayName: function (Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function (Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function (Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext);\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n },\n contextTypes: function (Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context);\n }\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function (Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function (Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an invariant so components\n // don't show up in prod but only in __DEV__\n process.env.NODE_ENV !== '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;\n }\n }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? process.env.NODE_ENV !== '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;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? process.env.NODE_ENV !== '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;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== '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;\n }\n\n return;\n }\n\n !(typeof spec !== 'function') ? process.env.NODE_ENV !== '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;\n !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n !!isReserved ? process.env.NODE_ENV !== '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;\n\n var isInherited = name in Constructor;\n !!isInherited ? process.env.NODE_ENV !== '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;\n Constructor[name] = property;\n }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n !(one[key] === undefined) ? process.env.NODE_ENV !== '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;\n one[key] = two[key];\n }\n }\n return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;\n } else if (!args.length) {\n process.env.NODE_ENV !== '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;\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function (newState, callback) {\n this.updater.enqueueReplaceState(this, newState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'replaceState');\n }\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function () {\n return this.updater.isMounted(this);\n }\n};\n\nvar ReactClassComponent = function () {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n createClass: function (spec) {\n var Constructor = function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== '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;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n this.state = initialState;\n };\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, spec);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n !Constructor.prototype.render ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== '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;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n },\n\n injection: {\n injectMixin: function (mixin) {\n injectedMixins.push(mixin);\n }\n }\n\n};\n\nmodule.exports = ReactClass;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactClass.js\n// module id = 23\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar ReactPropTypeLocations = keyMirror({\n prop: null,\n context: null,\n childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactPropTypeLocations.js\n// module id = 24\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function keyMirror(obj) {\n var ret = {};\n var key;\n !(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : void 0;\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\n\nmodule.exports = keyMirror;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/keyMirror.js\n// module id = 25\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactPropTypeLocationNames.js\n// module id = 26\n// module chunks = 5","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\nvar keyOf = function keyOf(oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\nmodule.exports = keyOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/keyOf.js\n// module id = 27\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMFactories.js\n// module id = 28\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactComponentTreeHook = require('./ReactComponentTreeHook');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\n\nvar checkReactTypeSpec = require('./checkReactTypeSpec');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar getIteratorFn = require('./getIteratorFn');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n info = ' Check the top-level render call using <' + parentName + '>.';\n }\n }\n return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n\n var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});\n\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (memoizer[currentComponentErrorInfo]) {\n return;\n }\n memoizer[currentComponentErrorInfo] = true;\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = '';\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n }\n\n process.env.NODE_ENV !== '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;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (ReactElement.isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (ReactElement.isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n // Entry iterators provide implicit keys.\n if (iteratorFn) {\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (ReactElement.isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n var componentClass = element.type;\n if (typeof componentClass !== 'function') {\n return;\n }\n var name = componentClass.displayName || componentClass.name;\n if (componentClass.propTypes) {\n checkReactTypeSpec(componentClass.propTypes, element.props, ReactPropTypeLocations.prop, name, element, null);\n }\n if (typeof componentClass.getDefaultProps === 'function') {\n process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n }\n}\n\nvar ReactElementValidator = {\n\n createElement: function (type, props, children) {\n var validType = typeof type === 'string' || typeof type === 'function';\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n process.env.NODE_ENV !== '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;\n }\n\n var element = ReactElement.createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n validatePropTypes(element);\n\n return element;\n },\n\n createFactory: function (type) {\n var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n // Legacy hook TODO: Warn if this is accessed\n validatedFactory.type = type;\n\n if (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0;\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n }\n\n return validatedFactory;\n },\n\n cloneElement: function (element, props, children) {\n var newElement = ReactElement.cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n\n};\n\nmodule.exports = ReactElementValidator;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactElementValidator.js\n// module id = 29\n// module chunks = 5","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentTreeHook\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty)\n // Strip regex characters so we can use it for regex\n .replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n // Remove hasOwnProperty from the template to make it generic\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar itemMap;\nvar rootIDSet;\n\nvar itemByKey;\nvar rootByKey;\n\nif (canUseCollections) {\n itemMap = new Map();\n rootIDSet = new Set();\n} else {\n itemByKey = {};\n rootByKey = {};\n}\n\nvar unmountedIDs = [];\n\n// Use non-numeric keys to prevent V8 performance issues:\n// https://github.com/facebook/react/pull/7232\nfunction getKeyFromID(id) {\n return '.' + id;\n}\nfunction getIDFromKey(key) {\n return parseInt(key.substr(1), 10);\n}\n\nfunction get(id) {\n if (canUseCollections) {\n return itemMap.get(id);\n } else {\n var key = getKeyFromID(id);\n return itemByKey[key];\n }\n}\n\nfunction remove(id) {\n if (canUseCollections) {\n itemMap['delete'](id);\n } else {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n }\n}\n\nfunction create(id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n\n if (canUseCollections) {\n itemMap.set(id, item);\n } else {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n }\n}\n\nfunction addRoot(id) {\n if (canUseCollections) {\n rootIDSet.add(id);\n } else {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n }\n}\n\nfunction removeRoot(id) {\n if (canUseCollections) {\n rootIDSet['delete'](id);\n } else {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n }\n}\n\nfunction getRegisteredIDs() {\n if (canUseCollections) {\n return Array.from(itemMap.keys());\n } else {\n return Object.keys(itemByKey).map(getIDFromKey);\n }\n}\n\nfunction getRootIDs() {\n if (canUseCollections) {\n return Array.from(rootIDSet.keys());\n } else {\n return Object.keys(rootByKey).map(getIDFromKey);\n }\n}\n\nfunction purgeDeep(id) {\n var item = get(id);\n if (item) {\n var childIDs = item.childIDs;\n\n remove(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function (id, nextChildIDs) {\n var item = get(id);\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = get(nextChildID);\n !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent ID is missing.\n }\n !(nextChild.parentID === id) ? process.env.NODE_ENV !== '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;\n }\n },\n onBeforeMountComponent: function (id, element, parentID) {\n create(id, element, parentID);\n },\n onBeforeUpdateComponent: function (id, element) {\n var item = get(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function (id) {\n var item = get(id);\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function (id) {\n var item = get(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function (id) {\n var item = get(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function () {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function (id) {\n var item = get(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function (topElement) {\n var info = '';\n if (topElement) {\n var type = topElement.type;\n var name = typeof type === 'function' ? type.displayName || type.name : type;\n var owner = topElement._owner;\n info += describeComponentFrame(name || 'Unknown', topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function (id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function (id) {\n var item = get(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return getDisplayName(element);\n },\n getElement: function (id) {\n var item = get(id);\n return item ? item.element : null;\n },\n getOwnerID: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function (id) {\n var item = get(id);\n return item ? item.parentID : null;\n },\n getSource: function (id) {\n var item = get(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function (id) {\n var item = get(id);\n return item ? item.updateCount : 0;\n },\n\n\n getRegisteredIDs: getRegisteredIDs,\n\n getRootIDs: getRootIDs\n};\n\nmodule.exports = ReactComponentTreeHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactComponentTreeHook.js\n// module id = 30\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule checkReactTypeSpec\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('./ReactComponentTreeHook');\n}\n\nvar loggedTypeFailures = {};\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?object} element The React element that is being type-checked\n * @param {?number} debugID The React component instance that is being type-checked\n * @private\n */\nfunction checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== '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;\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n process.env.NODE_ENV !== '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) : void 0;\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var componentStackInfo = '';\n\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('./ReactComponentTreeHook');\n }\n if (debugID !== null) {\n componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);\n } else if (element !== null) {\n componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);\n }\n }\n\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;\n }\n }\n }\n}\n\nmodule.exports = checkReactTypeSpec;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/checkReactTypeSpec.js\n// module id = 31\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypesSecret\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactPropTypesSecret.js\n// module id = 32\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getIteratorFn = require('./getIteratorFn');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n};\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n/*eslint-disable no-self-compare*/\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n/*eslint-enable no-self-compare*/\n\n/**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\nfunction PropTypeError(message) {\n this.message = message;\n this.stack = '';\n}\n// Make `instanceof Error` still work for returned errors.\nPropTypeError.prototype = Error.prototype;\n\nfunction createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (process.env.NODE_ENV !== 'production') {\n if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') {\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey]) {\n process.env.NODE_ENV !== '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;\n manualPropTypeCallCache[cacheKey] = true;\n }\n }\n }\n if (props[propName] == null) {\n var locationName = ReactPropTypeLocationNames[location];\n if (isRequired) {\n return new PropTypeError('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n var locationName = ReactPropTypeLocationNames[location];\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var locationName = ReactPropTypeLocationNames[location];\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactElement.isValidElement(propValue)) {\n var locationName = ReactPropTypeLocationNames[location];\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var locationName = ReactPropTypeLocationNames[location];\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n var locationName = ReactPropTypeLocationNames[location];\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || ReactElement.isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n}\n\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactPropTypes.js\n// module id = 33\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '15.3.2';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactVersion.js\n// module id = 34\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/onlyChild.js\n// module id = 35\n// module chunks = 5","'use strict';\n\nmodule.exports = require('react/lib/ReactDOM');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react-dom/index.js\n// module id = 36\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactMount = require('./ReactMount');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.render,\n unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n version: ReactVersion,\n\n /* eslint-disable camelcase */\n unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function (inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\n });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n // First check if devtools is not installed\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== '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;\n\n // If we're in IE8, check to see if we are in compatibility mode and provide\n // information on preventing compatibility mode\n var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : void 0;\n\n var expectedFeatures = [\n // shims\n 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];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n}\n\nmodule.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOM.js\n// module id = 37\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponentTree\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (childNode.nodeType === 1 && childNode.getAttribute(ATTR_NAME) === String(childID) || childNode.nodeType === 8 && childNode.nodeValue === ' react-text: ' + childID + ' ' || childNode.nodeType === 8 && childNode.nodeValue === ' react-empty: ' + childID + ' ') {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMComponentTree.js\n// module id = 38\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * isCustomAttribute: function that given an attribute name will return true\n * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n * attributes where it's impossible to enumerate all of the possible\n * attribute names,\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n * attribute namespace URL. (Attribute names not specified use no namespace.)\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function (domPropertyConfig) {\n var Injection = DOMPropertyInjection;\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n if (domPropertyConfig.isCustomAttribute) {\n DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n }\n\n for (var propName in Properties) {\n !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== '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;\n\n var lowerCased = propName.toLowerCase();\n var propConfig = Properties[propName];\n\n var propertyInfo = {\n attributeName: lowerCased,\n attributeNamespace: null,\n propertyName: propName,\n mutationMethod: null,\n\n mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n };\n !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== '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;\n\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[attributeName] = propName;\n }\n }\n\n if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n }\n\n if (DOMPropertyNames.hasOwnProperty(propName)) {\n propertyInfo.propertyName = DOMPropertyNames[propName];\n }\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n propertyInfo.mutationMethod = DOMMutationMethods[propName];\n }\n\n DOMProperty.properties[propName] = propertyInfo;\n }\n }\n};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n * > DOMProperty.isValid['id']\n * true\n * > DOMProperty.isValid['foobar']\n * undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n ID_ATTRIBUTE_NAME: 'data-reactid',\n ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n\n /**\n * Map from property \"standard name\" to an object with info about how to set\n * the property in the DOM. Each object contains:\n *\n * attributeName:\n * Used when rendering markup or with `*Attribute()`.\n * attributeNamespace\n * propertyName:\n * Used on DOM node instances. (This includes properties that mutate due to\n * external factors.)\n * mutationMethod:\n * If non-null, used instead of the property or `setAttribute()` after\n * initial render.\n * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\n * hasBooleanValue:\n * Whether the property should be removed when set to a falsey value.\n * hasNumericValue:\n * Whether the property must be numeric or parse as a numeric and should be\n * removed when set to a falsey value.\n * hasPositiveNumericValue:\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * hasOverloadedBooleanValue:\n * Whether the property can be used as a flag as well as with a value.\n * Removed when strictly equal to false; present without a value when\n * strictly equal to true; present with a value otherwise.\n */\n properties: {},\n\n /**\n * Mapping from lowercase property names to the properly cased version, used\n * to warn in the case of missing properties. Available only in __DEV__.\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? {} : null,\n\n /**\n * All of the isCustomAttribute() functions that have been injected.\n */\n _isCustomAttributeFunctions: [],\n\n /**\n * Checks whether a property name is a custom attribute.\n * @method\n */\n isCustomAttribute: function (attributeName) {\n for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n if (isCustomAttributeFn(attributeName)) {\n return true;\n }\n }\n return false;\n },\n\n injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DOMProperty.js\n// module id = 39\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponentFlags\n */\n\n'use strict';\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMComponentFlags.js\n// module id = 40\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMEmptyComponent = require('./ReactDOMEmptyComponent');\nvar ReactDOMTreeTraversal = require('./ReactDOMTreeTraversal');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n if (alreadyInjected) {\n // TODO: This is currently true because these injections are shared between\n // the client and the server package. They should be built independently\n // and not share any injection state. Then this problem will be solved.\n return;\n }\n alreadyInjected = true;\n\n ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n /**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\n\n /**\n * Some important event plugins included by default (without having to require\n * them).\n */\n ReactInjection.EventPluginHub.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n });\n\n ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDefaultInjection.js\n// module id = 41\n// module chunks = 5","/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onBeforeInput: null }),\n captured: keyOf({ onBeforeInputCapture: null })\n },\n dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionEnd: null }),\n captured: keyOf({ onCompositionEndCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionStart: null }),\n captured: keyOf({ onCompositionStartCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionUpdate: null }),\n captured: keyOf({ onCompositionUpdateCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionStart:\n return eventTypes.compositionStart;\n case topLevelTypes.topCompositionEnd:\n return eventTypes.compositionEnd;\n case topLevelTypes.topCompositionUpdate:\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topKeyUp:\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case topLevelTypes.topKeyDown:\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n case topLevelTypes.topKeyPress:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topBlur:\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionEnd:\n return getDataFromCustomEvent(nativeEvent);\n case topLevelTypes.topKeyPress:\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case topLevelTypes.topTextInput:\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === topLevelTypes.topCompositionEnd || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n var chars = currentComposition.getData();\n FallbackCompositionState.release(currentComposition);\n currentComposition = null;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case topLevelTypes.topPaste:\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case topLevelTypes.topKeyPress:\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case topLevelTypes.topCompositionEnd:\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n event.data = chars;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/BeforeInputEventPlugin.js\n// module id = 42\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n topAbort: null,\n topAnimationEnd: null,\n topAnimationIteration: null,\n topAnimationStart: null,\n topBlur: null,\n topCanPlay: null,\n topCanPlayThrough: null,\n topChange: null,\n topClick: null,\n topCompositionEnd: null,\n topCompositionStart: null,\n topCompositionUpdate: null,\n topContextMenu: null,\n topCopy: null,\n topCut: null,\n topDoubleClick: null,\n topDrag: null,\n topDragEnd: null,\n topDragEnter: null,\n topDragExit: null,\n topDragLeave: null,\n topDragOver: null,\n topDragStart: null,\n topDrop: null,\n topDurationChange: null,\n topEmptied: null,\n topEncrypted: null,\n topEnded: null,\n topError: null,\n topFocus: null,\n topInput: null,\n topInvalid: null,\n topKeyDown: null,\n topKeyPress: null,\n topKeyUp: null,\n topLoad: null,\n topLoadedData: null,\n topLoadedMetadata: null,\n topLoadStart: null,\n topMouseDown: null,\n topMouseMove: null,\n topMouseOut: null,\n topMouseOver: null,\n topMouseUp: null,\n topPaste: null,\n topPause: null,\n topPlay: null,\n topPlaying: null,\n topProgress: null,\n topRateChange: null,\n topReset: null,\n topScroll: null,\n topSeeked: null,\n topSeeking: null,\n topSelectionChange: null,\n topStalled: null,\n topSubmit: null,\n topSuspend: null,\n topTextInput: null,\n topTimeUpdate: null,\n topTouchCancel: null,\n topTouchEnd: null,\n topTouchMove: null,\n topTouchStart: null,\n topTransitionEnd: null,\n topVolumeChange: null,\n topWaiting: null,\n topWheel: null\n});\n\nvar EventConstants = {\n topLevelTypes: topLevelTypes,\n PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/EventConstants.js\n// module id = 43\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar warning = require('fbjs/lib/warning');\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, upwards, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/EventPropagators.js\n// module id = 44\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n },\n\n /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n var bankForRegistrationName = listenerBank[registrationName];\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function (events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function (simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== '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;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function () {\n listenerBank = {};\n },\n\n __getListenerBank: function () {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/EventPluginHub.js\n// module id = 45\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!EventPluginOrder) {\n // Wait until an `EventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var PluginModule = namesToPlugins[pluginName];\n var pluginIndex = EventPluginOrder.indexOf(pluginName);\n !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !PluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n var publishedEvents = PluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\n EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n\n if (process.env.NODE_ENV !== 'production') {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n /**\n * Ordered list of injected plugins.\n */\n plugins: [],\n\n /**\n * Mapping from event name to dispatch config\n */\n eventNameDispatchConfigs: {},\n\n /**\n * Mapping from registration name to plugin module\n */\n registrationNameModules: {},\n\n /**\n * Mapping from registration name to event name\n */\n registrationNameDependencies: {},\n\n /**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,\n\n /**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n injectEventPluginOrder: function (InjectedEventPluginOrder) {\n !!EventPluginOrder ? process.env.NODE_ENV !== '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;\n // Clone the ordering so it cannot be dynamically mutated.\n EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n recomputePluginOrdering();\n },\n\n /**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n injectEventPluginsByName: function (injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var PluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\n namesToPlugins[pluginName] = PluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n },\n\n /**\n * Looks up the plugin for the supplied event.\n *\n * @param {object} event A synthetic event.\n * @return {?object} The plugin that created the supplied event.\n * @internal\n */\n getPluginModuleForEvent: function (event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n for (var phase in dispatchConfig.phasedRegistrationNames) {\n if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n if (PluginModule) {\n return PluginModule;\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function () {\n EventPluginOrder = null;\n for (var pluginName in namesToPlugins) {\n if (namesToPlugins.hasOwnProperty(pluginName)) {\n delete namesToPlugins[pluginName];\n }\n }\n EventPluginRegistry.plugins.length = 0;\n\n var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n for (var eventName in eventNameDispatchConfigs) {\n if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n delete eventNameDispatchConfigs[eventName];\n }\n }\n\n var registrationNameModules = EventPluginRegistry.registrationNameModules;\n for (var registrationName in registrationNameModules) {\n if (registrationNameModules.hasOwnProperty(registrationName)) {\n delete registrationNameModules[registrationName];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/EventPluginRegistry.js\n// module id = 46\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventConstants = require('./EventConstants');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/EventPluginUtils.js\n// module id = 47\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n try {\n return func(a, b);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n return undefined;\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n var boundFunc = func.bind(null, a, b);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactErrorUtils.js\n// module id = 48\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\nmodule.exports = accumulateInto;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/accumulateInto.js\n// module id = 49\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n * \n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\n\nfunction forEachAccumulated(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n}\n\nmodule.exports = forEachAccumulated;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/forEachAccumulated.js\n// module id = 50\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/ExecutionEnvironment.js\n// module id = 51\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n this._root = root;\n this._startText = this.getText();\n this._fallbackText = null;\n}\n\n_assign(FallbackCompositionState.prototype, {\n destructor: function () {\n this._root = null;\n this._startText = null;\n this._fallbackText = null;\n },\n\n /**\n * Get current text of input.\n *\n * @return {string}\n */\n getText: function () {\n if ('value' in this._root) {\n return this._root.value;\n }\n return this._root[getTextContentAccessor()];\n },\n\n /**\n * Determine the differing substring between the initially stored\n * text content and the current content.\n *\n * @return {string}\n */\n getData: function () {\n if (this._fallbackText) {\n return this._fallbackText;\n }\n\n var start;\n var startValue = this._startText;\n var startLength = startValue.length;\n var end;\n var endValue = this.getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n this._fallbackText = endValue.slice(start, sliceTail);\n return this._fallbackText;\n }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/FallbackCompositionState.js\n// module id = 52\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n }\n return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getTextContentAccessor.js\n// module id = 53\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticCompositionEvent.js\n// module id = 54\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: null,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (process.env.NODE_ENV !== 'production') {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n // eslint-disable-line valid-typeof\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // eslint-disable-line valid-typeof\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {\n this.isPersistent = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function () {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (process.env.NODE_ENV !== 'production') {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== '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;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\n}\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n var Super = this;\n\n var E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\n _assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = _assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n\n PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n process.env.NODE_ENV !== '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;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticEvent.js\n// module id = 55\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticInputEvent.js\n// module id = 56\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onChange: null }),\n captured: keyOf({ onChangeCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n EventPropagators.accumulateTwoPhaseDispatches(event);\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topChange) {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === topLevelTypes.topFocus) {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(target, targetInst);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function () {\n return activeElementValueProp.get.call(this);\n },\n set: function (val) {\n // Cast to a string so we can do equality checks.\n activeElementValue = '' + val;\n activeElementValueProp.set.call(this, val);\n }\n};\n\n/**\n * (For IE <=11) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n // delete restores the original property definition\n delete activeElement.value;\n\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n var value = nativeEvent.srcElement.value;\n if (value === activeElementValue) {\n return;\n }\n activeElementValue = value;\n\n manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topInput) {\n // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n // what we want so fall through here and trigger an abstract event\n return targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === topLevelTypes.topFocus) {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9-11, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n if (activeElement && activeElement.value !== activeElementValue) {\n activeElementValue = activeElement.value;\n return activeElementInst;\n }\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === topLevelTypes.topClick) {\n return targetInst;\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ChangeEventPlugin.js\n// module id = 57\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n initialize: function () {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function () {\n if (this.dirtyComponentsLength !== dirtyComponents.length) {\n // Additional updates were enqueued by componentDidUpdate handlers or\n // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n // these new updates so that if A's componentDidUpdate calls setState on\n // B, B will update before the callback A's updater provided when calling\n // setState.\n dirtyComponents.splice(0, this.dirtyComponentsLength);\n flushBatchedUpdates();\n } else {\n dirtyComponents.length = 0;\n }\n }\n};\n\nvar UPDATE_QUEUEING = {\n initialize: function () {\n this.callbackQueue.reset();\n },\n close: function () {\n this.callbackQueue.notifyAll();\n }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n this.reinitializeTransaction();\n this.dirtyComponentsLength = null;\n this.callbackQueue = CallbackQueue.getPooled();\n this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function () {\n this.dirtyComponentsLength = null;\n CallbackQueue.release(this.callbackQueue);\n this.callbackQueue = null;\n ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n this.reconcileTransaction = null;\n },\n\n perform: function (method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n ensureInjected();\n batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n var len = transaction.dirtyComponentsLength;\n !(len === dirtyComponents.length) ? process.env.NODE_ENV !== '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;\n\n // Since reconciling a component higher in the owner hierarchy usually (not\n // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n // them before their children by sorting the array.\n dirtyComponents.sort(mountOrderComparator);\n\n // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\n\n for (var i = 0; i < len; i++) {\n // If a component is unmounted before pending changes apply, it will still\n // be here, but we assume that it has cleared its _pendingCallbacks and\n // that performUpdateIfNecessary is a noop.\n var component = dirtyComponents[i];\n\n // If performUpdateIfNecessary happens to enqueue any new updates, we\n // shouldn't execute the callbacks until the next render happens, so\n // stash the callbacks first\n var callbacks = component._pendingCallbacks;\n component._pendingCallbacks = null;\n\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.props === component._renderedComponent._currentElement) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n if (callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n }\n }\n }\n}\n\nvar flushBatchedUpdates = function () {\n // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n // array and perform any updates enqueued by mount-ready handlers (i.e.,\n // componentDidUpdate) but we need to check here too in order to catch\n // updates enqueued by setState callbacks and asap calls.\n while (dirtyComponents.length || asapEnqueued) {\n if (dirtyComponents.length) {\n var transaction = ReactUpdatesFlushTransaction.getPooled();\n transaction.perform(runBatchedUpdates, null, transaction);\n ReactUpdatesFlushTransaction.release(transaction);\n }\n\n if (asapEnqueued) {\n asapEnqueued = false;\n var queue = asapCallbackQueue;\n asapCallbackQueue = CallbackQueue.getPooled();\n queue.notifyAll();\n CallbackQueue.release(queue);\n }\n }\n};\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n ensureInjected();\n\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (This is called by each top-level update\n // function, like setState, forceUpdate, etc.; creation and\n // destruction of top-level components is guarded in ReactMount.)\n\n if (!batchingStrategy.isBatchingUpdates) {\n batchingStrategy.batchedUpdates(enqueueUpdate, component);\n return;\n }\n\n dirtyComponents.push(component);\n if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function (ReconcileTransaction) {\n !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function (_batchingStrategy) {\n !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\n batchingStrategy = _batchingStrategy;\n }\n};\n\nvar ReactUpdates = {\n /**\n * React references `ReactReconcileTransaction` using this property in order\n * to allow dependency injection.\n *\n * @internal\n */\n ReactReconcileTransaction: null,\n\n batchedUpdates: batchedUpdates,\n enqueueUpdate: enqueueUpdate,\n flushBatchedUpdates: flushBatchedUpdates,\n injection: ReactUpdatesInjection,\n asap: asap\n};\n\nmodule.exports = ReactUpdates;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactUpdates.js\n// module id = 58\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n this._callbacks = null;\n this._contexts = null;\n}\n\n_assign(CallbackQueue.prototype, {\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n enqueue: function (callback, context) {\n this._callbacks = this._callbacks || [];\n this._contexts = this._contexts || [];\n this._callbacks.push(callback);\n this._contexts.push(context);\n },\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n notifyAll: function () {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n if (callbacks) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i]);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n },\n\n checkpoint: function () {\n return this._callbacks ? this._callbacks.length : 0;\n },\n\n rollback: function (len) {\n if (this._callbacks) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n },\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n reset: function () {\n this._callbacks = null;\n this._contexts = null;\n },\n\n /**\n * `PooledClass` looks for this.\n */\n destructor: function () {\n this.reset();\n }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/CallbackQueue.js\n// module id = 59\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactFeatureFlags\n * \n */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactFeatureFlags.js\n// module id = 60\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n ) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function (internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (internalInstance, safely) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Update a component using a new element.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @internal\n */\n receiveComponent: function (internalInstance, nextElement, transaction, context) {\n var prevElement = internalInstance._currentElement;\n\n if (nextElement === prevElement && context === internalInstance._context) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for an element created outside a composite to be\n // deeply mutated and reused.\n\n // TODO: Bailing out early is just a perf optimization right?\n // TODO: Removing the return statement should affect correctness?\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\n }\n\n var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n if (refsChanged) {\n ReactRef.detachRefs(internalInstance, prevElement);\n }\n\n internalInstance.receiveComponent(nextElement, transaction, context);\n\n if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Flush any dirty changes in a component.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactReconciler.js\n// module id = 61\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(component.getPublicInstance());\n } else {\n // Legacy ref\n ReactOwner.addComponentAsRefTo(component, ref, owner);\n }\n}\n\nfunction detachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(null);\n } else {\n // Legacy ref\n ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n }\n}\n\nReactRef.attachRefs = function (instance, element) {\n if (element === null || element === false) {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n attachRef(ref, instance, element._owner);\n }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n // If either the owner or a `ref` has changed, make sure the newest owner\n // has stored a reference to `this`, and the previous owner (if different)\n // has forgotten the reference to `this`. We use the element instead\n // of the public this.props because the post processing cannot determine\n // a ref. The ref conceptually lives on the element.\n\n // TODO: Should this even be possible? The owner cannot change because\n // it's forbidden by shouldUpdateReactComponent. The ref can change\n // if you swap the keys of but not the refs. Reconsider where this check\n // is made. It probably belongs where the key checking and\n // instantiateReactComponent is done.\n\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n\n return (\n // This has a few false positives w/r/t empty components.\n prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextElement.ref === 'string' && nextElement._owner !== prevElement._owner\n );\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || element === false) {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n detachRef(ref, instance, element._owner);\n }\n};\n\nmodule.exports = ReactRef;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactRef.js\n// module id = 62\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return (\n * <div onClick={this.handleClick}>\n * <CustomComponent ref=\"custom\" />\n * </div>\n * );\n * },\n * handleClick: function() {\n * this.refs.custom.handleClick();\n * },\n * componentDidMount: function() {\n * this.refs.custom.initialize();\n * }\n * });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n /**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\n isValidOwner: function (object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n },\n\n /**\n * Adds a component by ref to an owner component.\n *\n * @param {ReactComponent} component Component to reference.\n * @param {string} ref Name by which to refer to the component.\n * @param {ReactOwner} owner Component on which to record the ref.\n * @final\n * @internal\n */\n addComponentAsRefTo: function (component, ref, owner) {\n !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== '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;\n owner.attachRef(ref, component);\n },\n\n /**\n * Removes a component by ref from an owner component.\n *\n * @param {ReactComponent} component Component to dereference.\n * @param {string} ref Name of the ref to remove.\n * @param {ReactOwner} owner Component on which the ref is recorded.\n * @final\n * @internal\n */\n removeComponentAsRefFrom: function (component, ref, owner) {\n !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== '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;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactOwner.js\n// module id = 63\n// module chunks = 5","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstrumentation\n */\n\n'use strict';\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactInstrumentation.js\n// module id = 64\n// module chunks = 5","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDebugTool\n */\n\n'use strict';\n\nvar ReactInvalidSetStateWarningHook = require('./ReactInvalidSetStateWarningHook');\nvar ReactHostOperationHistoryHook = require('./ReactHostOperationHistoryHook');\nvar ReactComponentTreeHook = require('./ReactComponentTreeHook');\nvar ReactChildrenMutationWarningHook = require('./ReactChildrenMutationWarningHook');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar performanceNow = require('fbjs/lib/performanceNow');\nvar warning = require('fbjs/lib/warning');\n\nvar hooks = [];\nvar didHookThrowForEvent = {};\n\nfunction callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) {\n try {\n fn.call(context, arg1, arg2, arg3, arg4, arg5);\n } catch (e) {\n process.env.NODE_ENV !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\\n' + e.stack) : void 0;\n didHookThrowForEvent[event] = true;\n }\n}\n\nfunction emitEvent(event, arg1, arg2, arg3, arg4, arg5) {\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n var fn = hook[event];\n if (fn) {\n callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5);\n }\n }\n}\n\nvar isProfiling = false;\nvar flushHistory = [];\nvar lifeCycleTimerStack = [];\nvar currentFlushNesting = 0;\nvar currentFlushMeasurements = null;\nvar currentFlushStartTime = null;\nvar currentTimerDebugID = null;\nvar currentTimerStartTime = null;\nvar currentTimerNestedFlushDuration = null;\nvar currentTimerType = null;\n\nvar lifeCycleTimerHasWarned = false;\n\nfunction clearHistory() {\n ReactComponentTreeHook.purgeUnmountedComponents();\n ReactHostOperationHistoryHook.clearHistory();\n}\n\nfunction getTreeSnapshot(registeredIDs) {\n return registeredIDs.reduce(function (tree, id) {\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var parentID = ReactComponentTreeHook.getParentID(id);\n tree[id] = {\n displayName: ReactComponentTreeHook.getDisplayName(id),\n text: ReactComponentTreeHook.getText(id),\n updateCount: ReactComponentTreeHook.getUpdateCount(id),\n childIDs: ReactComponentTreeHook.getChildIDs(id),\n // Text nodes don't have owners but this is close enough.\n ownerID: ownerID || ReactComponentTreeHook.getOwnerID(parentID),\n parentID: parentID\n };\n return tree;\n }, {});\n}\n\nfunction resetMeasurements() {\n var previousStartTime = currentFlushStartTime;\n var previousMeasurements = currentFlushMeasurements || [];\n var previousOperations = ReactHostOperationHistoryHook.getHistory();\n\n if (currentFlushNesting === 0) {\n currentFlushStartTime = null;\n currentFlushMeasurements = null;\n clearHistory();\n return;\n }\n\n if (previousMeasurements.length || previousOperations.length) {\n var registeredIDs = ReactComponentTreeHook.getRegisteredIDs();\n flushHistory.push({\n duration: performanceNow() - previousStartTime,\n measurements: previousMeasurements || [],\n operations: previousOperations || [],\n treeSnapshot: getTreeSnapshot(registeredIDs)\n });\n }\n\n clearHistory();\n currentFlushStartTime = performanceNow();\n currentFlushMeasurements = [];\n}\n\nfunction checkDebugID(debugID) {\n var allowRoot = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n if (allowRoot && debugID === 0) {\n return;\n }\n if (!debugID) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0;\n }\n}\n\nfunction beginLifeCycleTimer(debugID, timerType) {\n if (currentFlushNesting === 0) {\n return;\n }\n if (currentTimerType && !lifeCycleTimerHasWarned) {\n process.env.NODE_ENV !== '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;\n lifeCycleTimerHasWarned = true;\n }\n currentTimerStartTime = performanceNow();\n currentTimerNestedFlushDuration = 0;\n currentTimerDebugID = debugID;\n currentTimerType = timerType;\n}\n\nfunction endLifeCycleTimer(debugID, timerType) {\n if (currentFlushNesting === 0) {\n return;\n }\n if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {\n process.env.NODE_ENV !== '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;\n lifeCycleTimerHasWarned = true;\n }\n if (isProfiling) {\n currentFlushMeasurements.push({\n timerType: timerType,\n instanceID: debugID,\n duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration\n });\n }\n currentTimerStartTime = null;\n currentTimerNestedFlushDuration = null;\n currentTimerDebugID = null;\n currentTimerType = null;\n}\n\nfunction pauseCurrentLifeCycleTimer() {\n var currentTimer = {\n startTime: currentTimerStartTime,\n nestedFlushStartTime: performanceNow(),\n debugID: currentTimerDebugID,\n timerType: currentTimerType\n };\n lifeCycleTimerStack.push(currentTimer);\n currentTimerStartTime = null;\n currentTimerNestedFlushDuration = null;\n currentTimerDebugID = null;\n currentTimerType = null;\n}\n\nfunction resumeCurrentLifeCycleTimer() {\n var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop();\n\n var startTime = _lifeCycleTimerStack$.startTime;\n var nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime;\n var debugID = _lifeCycleTimerStack$.debugID;\n var timerType = _lifeCycleTimerStack$.timerType;\n\n var nestedFlushDuration = performanceNow() - nestedFlushStartTime;\n currentTimerStartTime = startTime;\n currentTimerNestedFlushDuration += nestedFlushDuration;\n currentTimerDebugID = debugID;\n currentTimerType = timerType;\n}\n\nvar ReactDebugTool = {\n addHook: function (hook) {\n hooks.push(hook);\n },\n removeHook: function (hook) {\n for (var i = 0; i < hooks.length; i++) {\n if (hooks[i] === hook) {\n hooks.splice(i, 1);\n i--;\n }\n }\n },\n isProfiling: function () {\n return isProfiling;\n },\n beginProfiling: function () {\n if (isProfiling) {\n return;\n }\n\n isProfiling = true;\n flushHistory.length = 0;\n resetMeasurements();\n ReactDebugTool.addHook(ReactHostOperationHistoryHook);\n },\n endProfiling: function () {\n if (!isProfiling) {\n return;\n }\n\n isProfiling = false;\n resetMeasurements();\n ReactDebugTool.removeHook(ReactHostOperationHistoryHook);\n },\n getFlushHistory: function () {\n return flushHistory;\n },\n onBeginFlush: function () {\n currentFlushNesting++;\n resetMeasurements();\n pauseCurrentLifeCycleTimer();\n emitEvent('onBeginFlush');\n },\n onEndFlush: function () {\n resetMeasurements();\n currentFlushNesting--;\n resumeCurrentLifeCycleTimer();\n emitEvent('onEndFlush');\n },\n onBeginLifeCycleTimer: function (debugID, timerType) {\n checkDebugID(debugID);\n emitEvent('onBeginLifeCycleTimer', debugID, timerType);\n beginLifeCycleTimer(debugID, timerType);\n },\n onEndLifeCycleTimer: function (debugID, timerType) {\n checkDebugID(debugID);\n endLifeCycleTimer(debugID, timerType);\n emitEvent('onEndLifeCycleTimer', debugID, timerType);\n },\n onBeginProcessingChildContext: function () {\n emitEvent('onBeginProcessingChildContext');\n },\n onEndProcessingChildContext: function () {\n emitEvent('onEndProcessingChildContext');\n },\n onHostOperation: function (debugID, type, payload) {\n checkDebugID(debugID);\n emitEvent('onHostOperation', debugID, type, payload);\n },\n onSetState: function () {\n emitEvent('onSetState');\n },\n onSetChildren: function (debugID, childDebugIDs) {\n checkDebugID(debugID);\n childDebugIDs.forEach(checkDebugID);\n emitEvent('onSetChildren', debugID, childDebugIDs);\n },\n onBeforeMountComponent: function (debugID, element, parentDebugID) {\n checkDebugID(debugID);\n checkDebugID(parentDebugID, true);\n emitEvent('onBeforeMountComponent', debugID, element, parentDebugID);\n },\n onMountComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onMountComponent', debugID);\n },\n onBeforeUpdateComponent: function (debugID, element) {\n checkDebugID(debugID);\n emitEvent('onBeforeUpdateComponent', debugID, element);\n },\n onUpdateComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onUpdateComponent', debugID);\n },\n onBeforeUnmountComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onBeforeUnmountComponent', debugID);\n },\n onUnmountComponent: function (debugID) {\n checkDebugID(debugID);\n emitEvent('onUnmountComponent', debugID);\n },\n onTestEvent: function () {\n emitEvent('onTestEvent');\n }\n};\n\n// TODO remove these when RN/www gets updated\nReactDebugTool.addDevtool = ReactDebugTool.addHook;\nReactDebugTool.removeDevtool = ReactDebugTool.removeHook;\n\nReactDebugTool.addHook(ReactInvalidSetStateWarningHook);\nReactDebugTool.addHook(ReactComponentTreeHook);\nReactDebugTool.addHook(ReactChildrenMutationWarningHook);\nvar url = ExecutionEnvironment.canUseDOM && window.location.href || '';\nif (/[?&]react_perf\\b/.test(url)) {\n ReactDebugTool.beginProfiling();\n}\n\nmodule.exports = ReactDebugTool;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDebugTool.js\n// module id = 65\n// module chunks = 5","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInvalidSetStateWarningHook\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nif (process.env.NODE_ENV !== 'production') {\n var processingChildContext = false;\n\n var warnInvalidSetState = function () {\n process.env.NODE_ENV !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0;\n };\n}\n\nvar ReactInvalidSetStateWarningHook = {\n onBeginProcessingChildContext: function () {\n processingChildContext = true;\n },\n onEndProcessingChildContext: function () {\n processingChildContext = false;\n },\n onSetState: function () {\n warnInvalidSetState();\n }\n};\n\nmodule.exports = ReactInvalidSetStateWarningHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactInvalidSetStateWarningHook.js\n// module id = 66\n// module chunks = 5","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactHostOperationHistoryHook\n */\n\n'use strict';\n\nvar history = [];\n\nvar ReactHostOperationHistoryHook = {\n onHostOperation: function (debugID, type, payload) {\n history.push({\n instanceID: debugID,\n type: type,\n payload: payload\n });\n },\n clearHistory: function () {\n if (ReactHostOperationHistoryHook._preventClearing) {\n // Should only be used for tests.\n return;\n }\n\n history = [];\n },\n getHistory: function () {\n return history;\n }\n};\n\nmodule.exports = ReactHostOperationHistoryHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactHostOperationHistoryHook.js\n// module id = 67\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildrenMutationWarningHook\n */\n\n'use strict';\n\nvar ReactComponentTreeHook = require('./ReactComponentTreeHook');\n\nvar warning = require('fbjs/lib/warning');\n\nfunction handleElement(debugID, element) {\n if (element == null) {\n return;\n }\n if (element._shadowChildren === undefined) {\n return;\n }\n if (element._shadowChildren === element.props.children) {\n return;\n }\n var isMutated = false;\n if (Array.isArray(element._shadowChildren)) {\n if (element._shadowChildren.length === element.props.children.length) {\n for (var i = 0; i < element._shadowChildren.length; i++) {\n if (element._shadowChildren[i] !== element.props.children[i]) {\n isMutated = true;\n }\n }\n } else {\n isMutated = true;\n }\n }\n if (!Array.isArray(element._shadowChildren) || isMutated) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Component\\'s children should not be mutated.%s', ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n }\n}\n\nvar ReactChildrenMutationWarningHook = {\n onMountComponent: function (debugID) {\n handleElement(debugID, ReactComponentTreeHook.getElement(debugID));\n },\n onUpdateComponent: function (debugID) {\n handleElement(debugID, ReactComponentTreeHook.getElement(debugID));\n }\n};\n\nmodule.exports = ReactChildrenMutationWarningHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactChildrenMutationWarningHook.js\n// module id = 68\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar performance = require('./performance');\n\nvar performanceNow;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (performance.now) {\n performanceNow = function performanceNow() {\n return performance.now();\n };\n} else {\n performanceNow = function performanceNow() {\n return Date.now();\n };\n}\n\nmodule.exports = performanceNow;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/performanceNow.js\n// module id = 69\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/performance.js\n// module id = 70\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n * wrappers (injected at creation time)\n * + +\n * | |\n * +-----------------|--------|--------------+\n * | v | |\n * | +---------------+ | |\n * | +--| wrapper1 |---|----+ |\n * | | +---------------+ v | |\n * | | +-------------+ | |\n * | | +----| wrapper2 |--------+ |\n * | | | +-------------+ | | |\n * | | | | | |\n * | v v v v | wrapper\n * | +---+ +---+ +---------+ +---+ +---+ | invariants\n * perform(anyMethod) | | | | | | | | | | | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | +---+ +---+ +---------+ +---+ +---+ |\n * | initialize close |\n * +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n * Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n * while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n * reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n * content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n * to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n * when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n /**\n * Sets up this instance so that it is prepared for collecting metrics. Does\n * so such that this setup method may be used on an instance that is already\n * initialized, in a way that does not consume additional memory upon reuse.\n * That can be useful if you decide to make your subclass of this mixin a\n * \"PooledClass\".\n */\n reinitializeTransaction: function () {\n this.transactionWrappers = this.getTransactionWrappers();\n if (this.wrapperInitData) {\n this.wrapperInitData.length = 0;\n } else {\n this.wrapperInitData = [];\n }\n this._isInTransaction = false;\n },\n\n _isInTransaction: false,\n\n /**\n * @abstract\n * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function () {\n return !!this._isInTransaction;\n },\n\n /**\n * Executes the function within a safety window. Use this for the top level\n * methods that result in large amounts of computation/mutations that would\n * need to be safety checked. The optional arguments helps prevent the need\n * to bind in many cases.\n *\n * @param {function} method Member of scope to call.\n * @param {Object} scope Scope to invoke from.\n * @param {Object?=} a Argument to pass to the method.\n * @param {Object?=} b Argument to pass to the method.\n * @param {Object?=} c Argument to pass to the method.\n * @param {Object?=} d Argument to pass to the method.\n * @param {Object?=} e Argument to pass to the method.\n * @param {Object?=} f Argument to pass to the method.\n *\n * @return {*} Return value from `method`.\n */\n perform: function (method, scope, a, b, c, d, e, f) {\n !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\n var errorThrown;\n var ret;\n try {\n this._isInTransaction = true;\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // one of these calls threw.\n errorThrown = true;\n this.initializeAll(0);\n ret = method.call(scope, a, b, c, d, e, f);\n errorThrown = false;\n } finally {\n try {\n if (errorThrown) {\n // If `method` throws, prefer to show that stack trace over any thrown\n // by invoking `closeAll`.\n try {\n this.closeAll(0);\n } catch (err) {}\n } else {\n // Since `method` didn't throw, we don't want to silence the exception\n // here.\n this.closeAll(0);\n }\n } finally {\n this._isInTransaction = false;\n }\n }\n return ret;\n },\n\n initializeAll: function (startIndex) {\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n try {\n // Catching errors makes debugging more difficult, so we start with the\n // OBSERVED_ERROR state before overwriting it with the real return value\n // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n // block, it means wrapper.initialize threw.\n this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n // The initializer for wrapper i threw an error; initialize the\n // remaining wrappers but silence any exceptions from them to ensure\n // that the first error is the one to bubble up.\n try {\n this.initializeAll(i + 1);\n } catch (err) {}\n }\n }\n }\n },\n\n /**\n * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n * them the respective return values of `this.transactionWrappers.init[i]`\n * (`close`rs that correspond to initializers that failed will not be\n * invoked).\n */\n closeAll: function (startIndex) {\n !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n var initData = this.wrapperInitData[i];\n var errorThrown;\n try {\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // wrapper.close threw.\n errorThrown = true;\n if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n wrapper.close.call(this, initData);\n }\n errorThrown = false;\n } finally {\n if (errorThrown) {\n // The closer for wrapper i threw an error; close the remaining\n // wrappers but silence any exceptions from them to ensure that the\n // first error is the one to bubble up.\n try {\n this.closeAll(i + 1);\n } catch (e) {}\n }\n }\n }\n this.wrapperInitData.length = 0;\n }\n};\n\nvar Transaction = {\n\n Mixin: Mixin,\n\n /**\n * Token to look for to determine if an error occurred.\n */\n OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/Transaction.js\n// module id = 71\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG <use> element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getEventTarget.js\n// module id = 72\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/isEventSupported.js\n// module id = 73\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n * \n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\n\nvar supportedInputTypes = {\n 'color': true,\n 'date': true,\n 'datetime': true,\n 'datetime-local': true,\n 'email': true,\n 'month': true,\n 'number': true,\n 'password': true,\n 'range': true,\n 'search': true,\n 'tel': true,\n 'text': true,\n 'time': true,\n 'url': true,\n 'week': true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/isTextInputElement.js\n// module id = 74\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = require('fbjs/lib/keyOf');\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DefaultEventPluginOrder.js\n// module id = 75\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: keyOf({ onMouseEnter: null }),\n dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n },\n mouseLeave: {\n registrationName: keyOf({ onMouseLeave: null }),\n dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n }\n};\n\nvar EnterLeaveEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n if (topLevelType === topLevelTypes.topMouseOut) {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/EnterLeaveEventPlugin.js\n// module id = 76\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function (event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function (event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function (event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticMouseEvent.js\n// module id = 77\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function (event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function (event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticUIEvent.js\n// module id = 78\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function (scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ViewportMetrics.js\n// module id = 79\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Meta': 'metaKey',\n 'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getEventModifierState.js\n// module id = 80\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {}\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/HTMLDOMPropertyConfig.js\n// module id = 81\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactComponentBrowserEnvironment.js\n// module id = 82\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n */\n\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, 'replace text', stringText);\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation(prevInstance._debugID, 'replace with', markup.toString());\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation(nextInstance._debugID, 'mount', markup.toString());\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'insert child', { toIndex: update.toIndex, content: update.content.toString() });\n }\n break;\n case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'move child', { fromIndex: update.fromIndex, toIndex: update.toIndex });\n }\n break;\n case ReactMultiChildUpdateTypes.SET_MARKUP:\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace children', update.content.toString());\n }\n break;\n case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace text', update.content.toString());\n }\n break;\n case ReactMultiChildUpdateTypes.REMOVE_NODE:\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'remove child', { fromIndex: update.fromIndex });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DOMChildrenOperations.js\n// module id = 83\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMLazyTree\n */\n\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some <object> plugins (like Flash Player) will read\n // <param> nodes immediately upon insertion into the DOM, so <object>\n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DOMLazyTree.js\n// module id = 84\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMNamespaces\n */\n\n'use strict';\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DOMNamespaces.js\n// module id = 85\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar DOMNamespaces = require('./DOMNamespaces');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function (node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/setInnerHTML.js\n// module id = 86\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createMicrosoftUnsafeLocalFunction\n */\n\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/createMicrosoftUnsafeLocalFunction.js\n// module id = 87\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/setTextContent.js\n// module id = 88\n// module chunks = 5","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/escapeTextContentForBrowser.js\n// module id = 89\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Danger = {\n\n /**\n * Replaces a node with a string of markup at its current position within its\n * parent. The markup must render into a single root node.\n *\n * @param {DOMElement} oldChild Child node to replace.\n * @param {string} markup Markup to render in place of the child node.\n * @internal\n */\n dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== '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;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== 'HTML') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> 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;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/Danger.js\n// module id = 90\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n var node = dummyNode;\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\n var nodeName = getNodeName(markup);\n\n var wrap = nodeName && getMarkupWrap(nodeName);\n if (wrap) {\n node.innerHTML = wrap[1] + markup + wrap[2];\n\n var wrapDepth = wrap[0];\n while (wrapDepth--) {\n node = node.lastChild;\n }\n } else {\n node.innerHTML = markup;\n }\n\n var scripts = node.getElementsByTagName('script');\n if (scripts.length) {\n !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/createNodesFromMarkup.js\n// module id = 91\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/createArrayFromMixed.js\n// module id = 92\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n '*': [1, '?<div>', '</div>'],\n\n 'area': [1, '<map>', '</map>'],\n 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n 'legend': [1, '<fieldset>', '</fieldset>'],\n 'param': [1, '<object>', '</object>'],\n 'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n 'optgroup': selectWrap,\n 'option': selectWrap,\n\n 'caption': tableWrap,\n 'colgroup': tableWrap,\n 'tbody': tableWrap,\n 'tfoot': tableWrap,\n 'thead': tableWrap,\n\n 'td': trWrap,\n 'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n markupWrap[nodeName] = svgWrap;\n shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\n if (!markupWrap.hasOwnProperty(nodeName)) {\n nodeName = '*';\n }\n if (!shouldWrap.hasOwnProperty(nodeName)) {\n if (nodeName === '*') {\n dummyNode.innerHTML = '<link />';\n } else {\n dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n }\n shouldWrap[nodeName] = !dummyNode.firstChild;\n }\n return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/getMarkupWrap.js\n// module id = 93\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n INSERT_MARKUP: null,\n MOVE_EXISTING: null,\n REMOVE_NODE: null,\n SET_MARKUP: null,\n TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactMultiChildUpdateTypes.js\n// module id = 94\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMIDOperations.js\n// module id = 95\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMNamespaces = require('./DOMNamespaces');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMButton = require('./ReactDOMButton');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar STYLE = keyOf({ style: null });\nvar HTML = keyOf({ __html: null });\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nfunction friendlyStringify(obj) {\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined because undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n break;\n case 'video':\n case 'audio':\n\n inst._wrapperState.listeners = [];\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topInvalid, 'invalid', node)];\n break;\n }\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n 'area': true,\n 'base': true,\n 'br': true,\n 'col': true,\n 'embed': true,\n 'hr': true,\n 'img': true,\n 'input': true,\n 'keygen': true,\n 'link': true,\n 'meta': true,\n 'param': true,\n 'source': true,\n 'track': true,\n 'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n 'listing': true,\n 'pre': true,\n 'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n 'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'button':\n props = ReactDOMButton.getHostProps(this, props, hostParent);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\n break;\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function (transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function (transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function (nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'button':\n lastProps = ReactDOMButton.getHostProps(this, lastProps);\n nextProps = ReactDOMButton.getHostProps(this, nextProps);\n break;\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = _assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMComponent.js\n// module id = 96\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n */\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar AutoFocusUtils = {\n focusDOMComponent: function () {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/AutoFocusUtils.js\n// module id = 97\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/focusNode.js\n// module id = 98\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n var tempStyle = document.createElement('div').style;\n try {\n // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n tempStyle.font = '';\n } catch (e) {\n hasShorthandPropertyBug = true;\n }\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function (name, value, owner) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function (name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function (owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n };\n\n /**\n * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function (name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\n }\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function (styles, component) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styleValue, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n * @param {ReactDOMComponent} component\n */\n setValueForStyles: function (node, styles, component) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(component._debugID, 'update styles', styles);\n }\n\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styles[styleName], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\n styleName = styleFloatAccessor;\n }\n if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n\n};\n\nmodule.exports = CSSPropertyOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/CSSPropertyOperations.js\n// module id = 99\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundAttachment: true,\n backgroundColor: true,\n backgroundImage: true,\n backgroundPositionX: true,\n backgroundPositionY: true,\n backgroundRepeat: true\n },\n backgroundPosition: {\n backgroundPositionX: true,\n backgroundPositionY: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n },\n outline: {\n outlineWidth: true,\n outlineStyle: true,\n outlineColor: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/CSSProperty.js\n// module id = 100\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/camelizeStyleName.js\n// module id = 101\n// module chunks = 5","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/camelize.js\n// module id = 102\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar warning = require('fbjs/lib/warning');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/dangerousStyleValue.js\n// module id = 103\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/hyphenateStyleName.js\n// module id = 104\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/hyphenate.js\n// module id = 105\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/memoizeStringOnly.js\n// module id = 106\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n return true;\n }\n if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\n return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n /**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n createMarkupForID: function (id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function (node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n createMarkupForRoot: function () {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function (node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\n },\n\n /**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\n createMarkupForProperty: function (name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n if (shouldIgnoreValue(propertyInfo, value)) {\n return '';\n }\n var attributeName = propertyInfo.attributeName;\n if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n return attributeName + '=\"\"';\n }\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n }\n return null;\n },\n\n /**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\n createMarkupForCustomAttribute: function (name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n },\n\n /**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n setValueForProperty: function (node, name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(propertyInfo, value)) {\n this.deleteValueForProperty(node, name);\n return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\n var attributeName = propertyInfo.attributeName;\n var namespace = propertyInfo.attributeNamespace;\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n if (namespace) {\n node.setAttributeNS(namespace, attributeName, '' + value);\n } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n node.setAttribute(attributeName, '');\n } else {\n node.setAttribute(attributeName, '' + value);\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);\n }\n },\n\n setValueForAttribute: function (node, name, value) {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function (node, name) {\n node.removeAttribute(name);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);\n }\n },\n\n /**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForProperty: function (node, name) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (propertyInfo.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DOMPropertyOperations.js\n// module id = 107\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/quoteAttributeValueForBrowser.js\n// module id = 108\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getVendorPrefixedEventName = require('./getVendorPrefixedEventName');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function (ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function (enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function () {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function (registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n var topLevelTypes = EventConstants.topLevelTypes;\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === topLevelTypes.topWheel) {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === topLevelTypes.topScroll) {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening[topLevelTypes.topBlur] = true;\n isListening[topLevelTypes.topFocus] = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function () {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactBrowserEventEmitter.js\n// module id = 109\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n EventPluginHub.enqueueEvents(events);\n EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n /**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n */\n handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactEventEmitterMixin.js\n// module id = 110\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getVendorPrefixedEventName\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getVendorPrefixedEventName.js\n// module id = 111\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\n\n/**\n * Implements a <button> host component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n getHostProps: DisabledInputUtils.getHostProps\n};\n\nmodule.exports = ReactDOMButton;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMButton.js\n// module id = 112\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DisabledInputUtils\n */\n\n'use strict';\n\nvar disableableMouseListenerNames = {\n onClick: true,\n onDoubleClick: true,\n onMouseDown: true,\n onMouseMove: true,\n onMouseUp: true,\n\n onClickCapture: true,\n onDoubleClickCapture: true,\n onMouseDownCapture: true,\n onMouseMoveCapture: true,\n onMouseUpCapture: true\n};\n\n/**\n * Implements a host component that does not receive mouse events\n * when `disabled` is set.\n */\nvar DisabledInputUtils = {\n getHostProps: function (inst, props) {\n if (!props.disabled) {\n return props;\n }\n\n // Copy the props, except the mouse listeners\n var hostProps = {};\n for (var key in props) {\n if (!disableableMouseListenerNames[key] && props.hasOwnProperty(key)) {\n hostProps[key] = props[key];\n }\n }\n\n return hostProps;\n }\n};\n\nmodule.exports = DisabledInputUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/DisabledInputUtils.js\n// module id = 113\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, DisabledInputUtils.getHostProps(inst, props), {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n\n if (process.env.NODE_ENV !== 'production') {\n inst._wrapperState.controlled = isControlled(props);\n }\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n node.defaultValue = '' + props.defaultValue;\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMInput.js\n// module id = 114\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n 'button': true,\n 'checkbox': true,\n 'image': true,\n 'hidden': true,\n 'radio': true,\n 'reset': true,\n 'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function (tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop, null, ReactPropTypesSecret);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function (inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function (inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function (inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/LinkedValueUtils.js\n// module id = 115\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar warning = require('fbjs/lib/warning');\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n ReactChildren.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function (inst, props, hostParent) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value is null (e.g., no specified value or after initial mount)\n // or missing (e.g., for <datalist>), we don't change props.selected\n var selected = null;\n if (selectValue != null) {\n var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function (inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function (inst, props) {\n var hostProps = _assign({ selected: undefined, children: undefined }, props);\n\n // Read state only from initial mount because <select> updates value\n // manually; we need the initial state only for server rendering\n if (inst._wrapperState.selected != null) {\n hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMOption.js\n// module id = 116\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n getHostProps: function (inst, props) {\n return _assign({}, DisabledInputUtils.getHostProps(inst, props), {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMSelect.js\n// module id = 117\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DisabledInputUtils = require('./DisabledInputUtils');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, DisabledInputUtils.getHostProps(inst, props), {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Warning: node.value may be the empty string at this point (IE11) if placeholder is set.\n node.value = node.textContent; // Detach value from defaultValue\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMTextarea.js\n// module id = 118\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar flattenChildren = require('./flattenChildren');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.SET_MARKUP,\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n\n _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function (nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\n }\n\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function (nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function (nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function (nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function (child, afterNode, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n return makeMove(child, afterNode, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function (child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function (child, node) {\n return makeRemove(child, node);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function (child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactMultiChild.js\n// module id = 119\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function (environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactComponentEnvironment.js\n// module id = 120\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\n\nvar ReactInstanceMap = {\n\n /**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n remove: function (key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function (key) {\n return key._reactInternalInstance;\n },\n\n has: function (key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function (key, value) {\n key._reactInternalInstance = value;\n }\n\n};\n\nmodule.exports = ReactInstanceMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactInstanceMap.js\n// module id = 121\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('./ReactComponentTreeHook');\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('./ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n ) {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactChildReconciler.js\n// module id = 122\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactHostComponent = require('./ReactHostComponent');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function (element) {\n this.construct(element);\n};\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\nvar nextDebugID = 1;\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if (typeof node === 'object') {\n var element = node;\n !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : _prodInvariant('130', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : void 0;\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.createInternalComponent(element);\n } else if (isInternalComponentType(element.type)) {\n // This is temporarily available for custom components that are not string\n // representations. I.e. ART. Once those are updated to use the string\n // representation, we can drop this code path.\n instance = new element.type(element);\n\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\n\n // These two fields are used by the DOM and ART diffing algorithms\n // respectively. Instead of using expandos on components, we should be\n // storing the state needed by the diffing algorithms elsewhere.\n instance._mountIndex = 0;\n instance._mountImage = null;\n\n if (process.env.NODE_ENV !== 'production') {\n instance._debugID = shouldHaveDebugID ? nextDebugID++ : 0;\n }\n\n // Internal instances should fully constructed at this point, so they should\n // not get any new fields added to them at this point.\n if (process.env.NODE_ENV !== 'production') {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\nmodule.exports = instantiateReactComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/instantiateReactComponent.js\n// module id = 123\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactReconciler = require('./ReactReconciler');\n\nvar checkReactTypeSpec = require('./checkReactTypeSpec');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || ReactElement.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function (element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || ReactElement.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = updateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%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.', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = 0;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function (context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function (context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function (currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n },\n\n receiveComponent: function (nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function (props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = _assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function (transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedComponent;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedComponent = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedComponent = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedComponent === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedComponent = null;\n }\n }\n\n return renderedComponent;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedComponent;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedComponent;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function (ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function (ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function () {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function () {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nvar ReactCompositeComponent = {\n\n Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactCompositeComponent.js\n// module id = 124\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNodeTypes\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function (node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (ReactElement.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactNodeTypes.js\n// module id = 125\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/shallowEqual.js\n// module id = 126\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement;\n var nextType = typeof nextElement;\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/shouldUpdateReactComponent.js\n// module id = 127\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function (factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function (instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactEmptyComponent.js\n// module id = 128\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactHostComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around host tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\n // This accepts a class that receives the tag string. This is a catch all\n // that can render any kind of tag.\n injectGenericComponentClass: function (componentClass) {\n genericComponentClass = componentClass;\n },\n // This accepts a text component class that takes the text string to be\n // rendered as props.\n injectTextComponentClass: function (componentClass) {\n textComponentClass = componentClass;\n },\n // This accepts a keyed object with classes as values. Each key represents a\n // tag. That particular tag will use this class instead of the generic one.\n injectComponentClasses: function (componentClasses) {\n _assign(tagToComponentClass, componentClasses);\n }\n};\n\n/**\n * Get a host internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n return component instanceof textComponentClass;\n}\n\nvar ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactHostComponent.js\n// module id = 129\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n * \n */\n\n'use strict';\n\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('./ReactComponentTreeHook');\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('./ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/flattenChildren.js\n// module id = 130\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\nvar Transaction = require('./Transaction');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactServerUpdateQueue = require('./ReactServerUpdateQueue');\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array} Empty list of operation wrap procedures.\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return this.updateQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {},\n\n checkpoint: function () {},\n\n rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactServerRenderingTransaction.js\n// module id = 131\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerUpdateQueue\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar Transaction = require('./Transaction');\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n /* :: transaction: Transaction; */\n\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n return false;\n };\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n }\n };\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\n };\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\n };\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactServerUpdateQueue.js\n// module id = 132\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%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, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function (internalInstance, callback) {\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactUpdateQueue.js\n// module id = 133\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n\n case 'pre':\n case 'listing':\n\n case 'table':\n\n case 'hr':\n\n case 'xmp':\n\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function (instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = ' Make sure you don\\'t have any extra whitespace between tags on ' + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/validateDOMNesting.js\n// module id = 134\n// module chunks = 5","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMEmptyComponent\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function () {},\n getHostNode: function () {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function () {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMEmptyComponent.js\n// module id = 135\n// module chunks = 5","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTreeTraversal\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], false, arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], true, arg);\n }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], true, argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], false, argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMTreeTraversal.js\n// module id = 136\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function (nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMTextComponent.js\n// module id = 137\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function () {\n ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n this.reinitializeTransaction();\n}\n\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n isBatchingUpdates: false,\n\n /**\n * Call the provided function in a context within which calls to `setState`\n * and friends are batched such that components aren't updated unnecessarily.\n */\n batchedUpdates: function (callback, a, b, c, d, e) {\n var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n // The code is written this way to avoid extra allocations\n if (alreadyBatchingUpdates) {\n callback(a, b, c, d, e);\n } else {\n transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDefaultBatchingStrategy.js\n// module id = 138\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function () {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function (handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function (enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function () {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function (refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function (topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactEventListener.js\n// module id = 139\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/EventListener.js\n// module id = 140\n// module chunks = 5","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable === window) {\n return {\n x: window.pageXOffset || document.documentElement.scrollLeft,\n y: window.pageYOffset || document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/getUnboundedScrollPosition.js\n// module id = 141\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactClass = require('./ReactClass');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n Class: ReactClass.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactInjection.js\n// module id = 142\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function () {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function (previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function () {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function () {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactReconcileTransaction.js\n// module id = 143\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n hasSelectionCapabilities: function (elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n },\n\n getSelectionInformation: function () {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n };\n },\n\n /**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n restoreSelection: function (priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n }\n focusNode(priorFocusedElem);\n }\n },\n\n /**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n getSelection: function (input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n // IE8 input.\n var range = document.selection.createRange();\n // There can only be one selection per document in IE, so it must\n // be in our element.\n if (range.parentElement() === input) {\n selection = {\n start: -range.moveStart('character', -input.value.length),\n end: -range.moveEnd('character', -input.value.length)\n };\n }\n } else {\n // Content editable or old IE textarea.\n selection = ReactDOMSelection.getOffsets(input);\n }\n\n return selection || { start: 0, end: 0 };\n },\n\n /**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n setSelection: function (input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n } else {\n ReactDOMSelection.setOffsets(input, offsets);\n }\n }\n};\n\nmodule.exports = ReactInputSelection;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactInputSelection.js\n// module id = 144\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n var selection = document.selection;\n var selectedRange = selection.createRange();\n var selectedLength = selectedRange.text.length;\n\n // Duplicate selection so we can move range without breaking user selection.\n var fromStart = selectedRange.duplicate();\n fromStart.moveToElementText(node);\n fromStart.setEndPoint('EndToStart', selectedRange);\n\n var startOffset = fromStart.text.length;\n var endOffset = startOffset + selectedLength;\n\n return {\n start: startOffset,\n end: endOffset\n };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n var currentRange = selection.getRangeAt(0);\n\n // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n // divs do not seem to expose properties, triggering a \"Permission denied\n // error\" if any of its properties are accessed. The only seemingly possible\n // way to avoid erroring is to access a property that typically works for\n // non-anonymous divs and catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n try {\n /* eslint-disable no-unused-expressions */\n currentRange.startContainer.nodeType;\n currentRange.endContainer.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n // If the node and offset values are the same, the selection is collapsed.\n // `Selection.isCollapsed` is available natively, but IE sometimes gets\n // this value wrong.\n var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n var tempRange = currentRange.cloneRange();\n tempRange.selectNodeContents(node);\n tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n var end = start + rangeLength;\n\n // Detect whether the selection is backward.\n var detectionRange = document.createRange();\n detectionRange.setStart(anchorNode, anchorOffset);\n detectionRange.setEnd(focusNode, focusOffset);\n var isBackward = detectionRange.collapsed;\n\n return {\n start: isBackward ? end : start,\n end: isBackward ? start : end\n };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n var range = document.selection.createRange().duplicate();\n var start, end;\n\n if (offsets.end === undefined) {\n start = offsets.start;\n end = start;\n } else if (offsets.start > offsets.end) {\n start = offsets.end;\n end = offsets.start;\n } else {\n start = offsets.start;\n end = offsets.end;\n }\n\n range.moveToElementText(node);\n range.moveStart('character', start);\n range.setEndPoint('EndToStart', range);\n range.moveEnd('character', end - start);\n range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n /**\n * @param {DOMElement} node\n */\n getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n /**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMSelection.js\n// module id = 145\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === 3) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\nmodule.exports = getNodeForCharacterOffset;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getNodeForCharacterOffset.js\n// module id = 146\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/containsNode.js\n// module id = 147\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/isTextNode.js\n// module id = 148\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/isNode.js\n// module id = 149\n// module chunks = 5","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n */\nfunction getActiveElement() /*?DOMElement*/{\n if (typeof document === 'undefined') {\n return null;\n }\n try {\n return document.activeElement || document.body;\n } catch (e) {\n return document.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.8.5@fbjs/lib/getActiveElement.js\n// module id = 150\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\n DOMAttributeNamespaces: {\n xlinkActuate: NS.xlink,\n xlinkArcrole: NS.xlink,\n xlinkHref: NS.xlink,\n xlinkRole: NS.xlink,\n xlinkShow: NS.xlink,\n xlinkTitle: NS.xlink,\n xlinkType: NS.xlink,\n xmlBase: NS.xml,\n xmlLang: NS.xml,\n xmlSpace: NS.xml\n },\n DOMAttributeNames: {}\n};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SVGDOMPropertyConfig.js\n// module id = 151\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSelect: null }),\n captured: keyOf({ onSelectCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case topLevelTypes.topFocus:\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case topLevelTypes.topBlur:\n activeElement = null;\n activeElementInst = null;\n lastSelection = null;\n break;\n\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case topLevelTypes.topMouseDown:\n mouseDown = true;\n break;\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topMouseUp:\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case topLevelTypes.topSelectionChange:\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === ON_SELECT_KEY) {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SelectEventPlugin.js\n// module id = 152\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventConstants = require('./EventConstants');\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticAnimationEvent = require('./SyntheticAnimationEvent');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticTransitionEvent = require('./SyntheticTransitionEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n abort: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAbort: true }),\n captured: keyOf({ onAbortCapture: true })\n }\n },\n animationEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAnimationEnd: true }),\n captured: keyOf({ onAnimationEndCapture: true })\n }\n },\n animationIteration: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAnimationIteration: true }),\n captured: keyOf({ onAnimationIterationCapture: true })\n }\n },\n animationStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAnimationStart: true }),\n captured: keyOf({ onAnimationStartCapture: true })\n }\n },\n blur: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onBlur: true }),\n captured: keyOf({ onBlurCapture: true })\n }\n },\n canPlay: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCanPlay: true }),\n captured: keyOf({ onCanPlayCapture: true })\n }\n },\n canPlayThrough: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCanPlayThrough: true }),\n captured: keyOf({ onCanPlayThroughCapture: true })\n }\n },\n click: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onClick: true }),\n captured: keyOf({ onClickCapture: true })\n }\n },\n contextMenu: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onContextMenu: true }),\n captured: keyOf({ onContextMenuCapture: true })\n }\n },\n copy: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCopy: true }),\n captured: keyOf({ onCopyCapture: true })\n }\n },\n cut: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCut: true }),\n captured: keyOf({ onCutCapture: true })\n }\n },\n doubleClick: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDoubleClick: true }),\n captured: keyOf({ onDoubleClickCapture: true })\n }\n },\n drag: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDrag: true }),\n captured: keyOf({ onDragCapture: true })\n }\n },\n dragEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragEnd: true }),\n captured: keyOf({ onDragEndCapture: true })\n }\n },\n dragEnter: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragEnter: true }),\n captured: keyOf({ onDragEnterCapture: true })\n }\n },\n dragExit: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragExit: true }),\n captured: keyOf({ onDragExitCapture: true })\n }\n },\n dragLeave: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragLeave: true }),\n captured: keyOf({ onDragLeaveCapture: true })\n }\n },\n dragOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragOver: true }),\n captured: keyOf({ onDragOverCapture: true })\n }\n },\n dragStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragStart: true }),\n captured: keyOf({ onDragStartCapture: true })\n }\n },\n drop: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDrop: true }),\n captured: keyOf({ onDropCapture: true })\n }\n },\n durationChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDurationChange: true }),\n captured: keyOf({ onDurationChangeCapture: true })\n }\n },\n emptied: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEmptied: true }),\n captured: keyOf({ onEmptiedCapture: true })\n }\n },\n encrypted: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEncrypted: true }),\n captured: keyOf({ onEncryptedCapture: true })\n }\n },\n ended: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEnded: true }),\n captured: keyOf({ onEndedCapture: true })\n }\n },\n error: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onError: true }),\n captured: keyOf({ onErrorCapture: true })\n }\n },\n focus: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onFocus: true }),\n captured: keyOf({ onFocusCapture: true })\n }\n },\n input: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onInput: true }),\n captured: keyOf({ onInputCapture: true })\n }\n },\n invalid: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onInvalid: true }),\n captured: keyOf({ onInvalidCapture: true })\n }\n },\n keyDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyDown: true }),\n captured: keyOf({ onKeyDownCapture: true })\n }\n },\n keyPress: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyPress: true }),\n captured: keyOf({ onKeyPressCapture: true })\n }\n },\n keyUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyUp: true }),\n captured: keyOf({ onKeyUpCapture: true })\n }\n },\n load: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoad: true }),\n captured: keyOf({ onLoadCapture: true })\n }\n },\n loadedData: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadedData: true }),\n captured: keyOf({ onLoadedDataCapture: true })\n }\n },\n loadedMetadata: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadedMetadata: true }),\n captured: keyOf({ onLoadedMetadataCapture: true })\n }\n },\n loadStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadStart: true }),\n captured: keyOf({ onLoadStartCapture: true })\n }\n },\n // Note: We do not allow listening to mouseOver events. Instead, use the\n // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n mouseDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseDown: true }),\n captured: keyOf({ onMouseDownCapture: true })\n }\n },\n mouseMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseMove: true }),\n captured: keyOf({ onMouseMoveCapture: true })\n }\n },\n mouseOut: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseOut: true }),\n captured: keyOf({ onMouseOutCapture: true })\n }\n },\n mouseOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseOver: true }),\n captured: keyOf({ onMouseOverCapture: true })\n }\n },\n mouseUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseUp: true }),\n captured: keyOf({ onMouseUpCapture: true })\n }\n },\n paste: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPaste: true }),\n captured: keyOf({ onPasteCapture: true })\n }\n },\n pause: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPause: true }),\n captured: keyOf({ onPauseCapture: true })\n }\n },\n play: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPlay: true }),\n captured: keyOf({ onPlayCapture: true })\n }\n },\n playing: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPlaying: true }),\n captured: keyOf({ onPlayingCapture: true })\n }\n },\n progress: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onProgress: true }),\n captured: keyOf({ onProgressCapture: true })\n }\n },\n rateChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onRateChange: true }),\n captured: keyOf({ onRateChangeCapture: true })\n }\n },\n reset: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onReset: true }),\n captured: keyOf({ onResetCapture: true })\n }\n },\n scroll: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onScroll: true }),\n captured: keyOf({ onScrollCapture: true })\n }\n },\n seeked: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSeeked: true }),\n captured: keyOf({ onSeekedCapture: true })\n }\n },\n seeking: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSeeking: true }),\n captured: keyOf({ onSeekingCapture: true })\n }\n },\n stalled: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onStalled: true }),\n captured: keyOf({ onStalledCapture: true })\n }\n },\n submit: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSubmit: true }),\n captured: keyOf({ onSubmitCapture: true })\n }\n },\n suspend: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSuspend: true }),\n captured: keyOf({ onSuspendCapture: true })\n }\n },\n timeUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTimeUpdate: true }),\n captured: keyOf({ onTimeUpdateCapture: true })\n }\n },\n touchCancel: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchCancel: true }),\n captured: keyOf({ onTouchCancelCapture: true })\n }\n },\n touchEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchEnd: true }),\n captured: keyOf({ onTouchEndCapture: true })\n }\n },\n touchMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchMove: true }),\n captured: keyOf({ onTouchMoveCapture: true })\n }\n },\n touchStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchStart: true }),\n captured: keyOf({ onTouchStartCapture: true })\n }\n },\n transitionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTransitionEnd: true }),\n captured: keyOf({ onTransitionEndCapture: true })\n }\n },\n volumeChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onVolumeChange: true }),\n captured: keyOf({ onVolumeChangeCapture: true })\n }\n },\n waiting: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onWaiting: true }),\n captured: keyOf({ onWaitingCapture: true })\n }\n },\n wheel: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onWheel: true }),\n captured: keyOf({ onWheelCapture: true })\n }\n }\n};\n\nvar topLevelEventsToDispatchConfig = {\n topAbort: eventTypes.abort,\n topAnimationEnd: eventTypes.animationEnd,\n topAnimationIteration: eventTypes.animationIteration,\n topAnimationStart: eventTypes.animationStart,\n topBlur: eventTypes.blur,\n topCanPlay: eventTypes.canPlay,\n topCanPlayThrough: eventTypes.canPlayThrough,\n topClick: eventTypes.click,\n topContextMenu: eventTypes.contextMenu,\n topCopy: eventTypes.copy,\n topCut: eventTypes.cut,\n topDoubleClick: eventTypes.doubleClick,\n topDrag: eventTypes.drag,\n topDragEnd: eventTypes.dragEnd,\n topDragEnter: eventTypes.dragEnter,\n topDragExit: eventTypes.dragExit,\n topDragLeave: eventTypes.dragLeave,\n topDragOver: eventTypes.dragOver,\n topDragStart: eventTypes.dragStart,\n topDrop: eventTypes.drop,\n topDurationChange: eventTypes.durationChange,\n topEmptied: eventTypes.emptied,\n topEncrypted: eventTypes.encrypted,\n topEnded: eventTypes.ended,\n topError: eventTypes.error,\n topFocus: eventTypes.focus,\n topInput: eventTypes.input,\n topInvalid: eventTypes.invalid,\n topKeyDown: eventTypes.keyDown,\n topKeyPress: eventTypes.keyPress,\n topKeyUp: eventTypes.keyUp,\n topLoad: eventTypes.load,\n topLoadedData: eventTypes.loadedData,\n topLoadedMetadata: eventTypes.loadedMetadata,\n topLoadStart: eventTypes.loadStart,\n topMouseDown: eventTypes.mouseDown,\n topMouseMove: eventTypes.mouseMove,\n topMouseOut: eventTypes.mouseOut,\n topMouseOver: eventTypes.mouseOver,\n topMouseUp: eventTypes.mouseUp,\n topPaste: eventTypes.paste,\n topPause: eventTypes.pause,\n topPlay: eventTypes.play,\n topPlaying: eventTypes.playing,\n topProgress: eventTypes.progress,\n topRateChange: eventTypes.rateChange,\n topReset: eventTypes.reset,\n topScroll: eventTypes.scroll,\n topSeeked: eventTypes.seeked,\n topSeeking: eventTypes.seeking,\n topStalled: eventTypes.stalled,\n topSubmit: eventTypes.submit,\n topSuspend: eventTypes.suspend,\n topTimeUpdate: eventTypes.timeUpdate,\n topTouchCancel: eventTypes.touchCancel,\n topTouchEnd: eventTypes.touchEnd,\n topTouchMove: eventTypes.touchMove,\n topTouchStart: eventTypes.touchStart,\n topTransitionEnd: eventTypes.transitionEnd,\n topVolumeChange: eventTypes.volumeChange,\n topWaiting: eventTypes.waiting,\n topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case topLevelTypes.topAbort:\n case topLevelTypes.topCanPlay:\n case topLevelTypes.topCanPlayThrough:\n case topLevelTypes.topDurationChange:\n case topLevelTypes.topEmptied:\n case topLevelTypes.topEncrypted:\n case topLevelTypes.topEnded:\n case topLevelTypes.topError:\n case topLevelTypes.topInput:\n case topLevelTypes.topInvalid:\n case topLevelTypes.topLoad:\n case topLevelTypes.topLoadedData:\n case topLevelTypes.topLoadedMetadata:\n case topLevelTypes.topLoadStart:\n case topLevelTypes.topPause:\n case topLevelTypes.topPlay:\n case topLevelTypes.topPlaying:\n case topLevelTypes.topProgress:\n case topLevelTypes.topRateChange:\n case topLevelTypes.topReset:\n case topLevelTypes.topSeeked:\n case topLevelTypes.topSeeking:\n case topLevelTypes.topStalled:\n case topLevelTypes.topSubmit:\n case topLevelTypes.topSuspend:\n case topLevelTypes.topTimeUpdate:\n case topLevelTypes.topVolumeChange:\n case topLevelTypes.topWaiting:\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case topLevelTypes.topKeyPress:\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case topLevelTypes.topBlur:\n case topLevelTypes.topFocus:\n EventConstructor = SyntheticFocusEvent;\n break;\n case topLevelTypes.topClick:\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topDoubleClick:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topMouseMove:\n case topLevelTypes.topMouseOut:\n case topLevelTypes.topMouseOver:\n case topLevelTypes.topMouseUp:\n EventConstructor = SyntheticMouseEvent;\n break;\n case topLevelTypes.topDrag:\n case topLevelTypes.topDragEnd:\n case topLevelTypes.topDragEnter:\n case topLevelTypes.topDragExit:\n case topLevelTypes.topDragLeave:\n case topLevelTypes.topDragOver:\n case topLevelTypes.topDragStart:\n case topLevelTypes.topDrop:\n EventConstructor = SyntheticDragEvent;\n break;\n case topLevelTypes.topTouchCancel:\n case topLevelTypes.topTouchEnd:\n case topLevelTypes.topTouchMove:\n case topLevelTypes.topTouchStart:\n EventConstructor = SyntheticTouchEvent;\n break;\n case topLevelTypes.topAnimationEnd:\n case topLevelTypes.topAnimationIteration:\n case topLevelTypes.topAnimationStart:\n EventConstructor = SyntheticAnimationEvent;\n break;\n case topLevelTypes.topTransitionEnd:\n EventConstructor = SyntheticTransitionEvent;\n break;\n case topLevelTypes.topScroll:\n EventConstructor = SyntheticUIEvent;\n break;\n case topLevelTypes.topWheel:\n EventConstructor = SyntheticWheelEvent;\n break;\n case topLevelTypes.topCopy:\n case topLevelTypes.topCut:\n case topLevelTypes.topPaste:\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n if (registrationName === ON_CLICK_KEY) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === ON_CLICK_KEY) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SimpleEventPlugin.js\n// module id = 153\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticAnimationEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticAnimationEvent.js\n// module id = 154\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticClipboardEvent.js\n// module id = 155\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticFocusEvent.js\n// module id = 156\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticKeyboardEvent.js\n// module id = 157\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getEventCharCode.js\n// module id = 158\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n */\n\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n 'Esc': 'Escape',\n 'Spacebar': ' ',\n 'Left': 'ArrowLeft',\n 'Up': 'ArrowUp',\n 'Right': 'ArrowRight',\n 'Down': 'ArrowDown',\n 'Del': 'Delete',\n 'Win': 'OS',\n 'Menu': 'ContextMenu',\n 'Apps': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getEventKey.js\n// module id = 159\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticDragEvent.js\n// module id = 160\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticTouchEvent.js\n// module id = 161\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTransitionEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticTransitionEvent.js\n// module id = 162\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX :\n // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY :\n // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY :\n // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/SyntheticWheelEvent.js\n// module id = 163\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMProperty = require('./DOMProperty');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMContainerInfo = require('./ReactDOMContainerInfo');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactElement = require('./ReactElement');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n // this.props is actually a ReactElement\n return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n TopLevelWrapper: TopLevelWrapper,\n\n /**\n * Used by devtools. The keys are not important.\n */\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function (container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !ReactElement.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\n // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n var nextWrappedElement = ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function (nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function (container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, rootElement);\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation(hostNode._debugID, 'mount', markup.toString());\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactMount.js\n// module id = 164\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMContainerInfo\n */\n\n'use strict';\n\nvar validateDOMNesting = require('./validateDOMNesting');\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMContainerInfo.js\n// module id = 165\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMFeatureFlags.js\n// module id = 166\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\n\nvar ReactMarkupChecksum = {\n CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n /**\n * @param {string} markup Markup string\n * @return {string} Markup string with checksum attribute attached\n */\n addChecksumToMarkup: function (markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\n },\n\n /**\n * @param {string} markup to use\n * @param {DOMElement} element root React element\n * @returns {boolean} whether or not the markup is the same\n */\n canReuseMarkup: function (markup, element) {\n var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n var markupChecksum = adler32(markup);\n return markupChecksum === existingChecksum;\n }\n};\n\nmodule.exports = ReactMarkupChecksum;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactMarkupChecksum.js\n// module id = 167\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n * \n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n var a = 1;\n var b = 0;\n var i = 0;\n var l = data.length;\n var m = l & ~0x3;\n while (i < m) {\n var n = Math.min(i + 4096, m);\n for (; i < n; i += 4) {\n b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n }\n a %= MOD;\n b %= MOD;\n }\n for (; i < l; i++) {\n b += a += data.charCodeAt(i);\n }\n a %= MOD;\n b %= MOD;\n return a | b << 16;\n}\n\nmodule.exports = adler32;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/adler32.js\n// module id = 168\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/findDOMNode.js\n// module id = 169\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getHostComponentFromComposite\n */\n\n'use strict';\n\nvar ReactNodeTypes = require('./ReactNodeTypes');\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/getHostComponentFromComposite.js\n// module id = 170\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/renderSubtreeIntoContainer.js\n// module id = 171\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMUnknownPropertyHook\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactComponentTreeHook = require('./ReactComponentTreeHook');\n\nvar warning = require('fbjs/lib/warning');\n\nif (process.env.NODE_ENV !== 'production') {\n var reactProps = {\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n\n autoFocus: true,\n defaultValue: true,\n valueLink: true,\n defaultChecked: true,\n checkedLink: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n onFocusIn: true,\n onFocusOut: true\n };\n var warnedProperties = {};\n\n var validateProperty = function (tagName, name, debugID) {\n if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) {\n return true;\n }\n if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n return true;\n }\n if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) {\n return true;\n }\n warnedProperties[name] = true;\n var lowerCasedName = name.toLowerCase();\n\n // data-* attributes should be lowercase; suggest the lowercase version\n var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null;\n\n if (standardName != null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n return true;\n } else if (registrationName != null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n return true;\n } else {\n // We were unable to guess which prop the user intended.\n // It is likely that the user was just blindly spreading/forwarding props\n // Components should be careful to only render valid props/attributes.\n // Warning will be invoked in warnUnknownProperties to allow grouping.\n return false;\n }\n };\n}\n\nvar warnUnknownProperties = function (debugID, element) {\n var unknownProps = [];\n for (var key in element.props) {\n var isValid = validateProperty(element.type, key, debugID);\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (unknownProps.length === 1) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n } else if (unknownProps.length > 1) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n }\n};\n\nfunction handleElement(debugID, element) {\n if (element == null || typeof element.type !== 'string') {\n return;\n }\n if (element.type.indexOf('-') >= 0 || element.props.is) {\n return;\n }\n warnUnknownProperties(debugID, element);\n}\n\nvar ReactDOMUnknownPropertyHook = {\n onBeforeMountComponent: function (debugID, element) {\n handleElement(debugID, element);\n },\n onBeforeUpdateComponent: function (debugID, element) {\n handleElement(debugID, element);\n }\n};\n\nmodule.exports = ReactDOMUnknownPropertyHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMUnknownPropertyHook.js\n// module id = 172\n// module chunks = 5","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMNullInputValuePropHook\n */\n\n'use strict';\n\nvar ReactComponentTreeHook = require('./ReactComponentTreeHook');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueNull = false;\n\nfunction handleElement(debugID, element) {\n if (element == null) {\n return;\n }\n if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') {\n return;\n }\n if (element.props != null && element.props.value === null && !didWarnValueNull) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n\n didWarnValueNull = true;\n }\n}\n\nvar ReactDOMNullInputValuePropHook = {\n onBeforeMountComponent: function (debugID, element) {\n handleElement(debugID, element);\n },\n onBeforeUpdateComponent: function (debugID, element) {\n handleElement(debugID, element);\n }\n};\n\nmodule.exports = ReactDOMNullInputValuePropHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.15.3.2@react/lib/ReactDOMNullInputValuePropHook.js\n// module id = 173\n// module chunks = 5","//! moment.js\n//! version : 2.16.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\nvar hookCallback;\n\nfunction hooks () {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback (callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n}\n\nfunction isObjectEmpty(obj) {\n var k;\n for (k in obj) {\n // even if its not own property I'd still call it non-empty\n return false;\n }\n return true;\n}\n\nfunction isNumber(input) {\n return typeof value === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n}\n\nfunction isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n}\n\nfunction map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nvar some$1 = some;\n\nfunction isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some$1.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n}\n\nfunction createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = hooks.momentProperties = [];\n\nfunction copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i in momentProperties) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\nvar updateInProgress = false;\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n}\n\nfunction absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\nfunction warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n}\n\nfunction set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _ordinalParseLenient.\n this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\\d{1,2}/).source);\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar keys$1 = keys;\n\nvar defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n};\n\nfunction calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nvar defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n};\n\nfunction longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate () {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d';\nvar defaultOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal (number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n};\n\nfunction relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n}\n\nfunction pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {};\n\nfunction addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n}\n\nfunction normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {};\n\nfunction addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nfunction makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n}\n\nfunction set$1 (mom, unit, value) {\n if (mom.isValid()) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n}\n\n// MOMENTS\n\nfunction stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\n\nfunction stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n}\n\nvar formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\nvar localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\nvar formatFunctions = {};\n\nvar formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar match1 = /\\d/; // 0 - 9\nvar match2 = /\\d\\d/; // 00 - 99\nvar match3 = /\\d{3}/; // 000 - 999\nvar match4 = /\\d{4}/; // 0000 - 9999\nvar match6 = /[+-]?\\d{6}/; // -999999 - 999999\nvar match1to2 = /\\d\\d?/; // 0 - 99\nvar match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\nvar match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\nvar match1to3 = /\\d{1,3}/; // 0 - 999\nvar match1to4 = /\\d{1,4}/; // 0 - 9999\nvar match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\nvar matchUnsigned = /\\d+/; // 0 - inf\nvar matchSigned = /[+-]?\\d+/; // -inf - inf\n\nvar matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\nvar matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\nvar matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\nvar matchWord = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n\n\nvar regexes = {};\n\nfunction addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nvar tokens = {};\n\nfunction addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nvar YEAR = 0;\nvar MONTH = 1;\nvar DATE = 2;\nvar HOUR = 3;\nvar MINUTE = 4;\nvar SECOND = 5;\nvar MILLISECOND = 6;\nvar WEEK = 7;\nvar WEEKDAY = 8;\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nvar indexOf$1 = indexOf;\n\nfunction daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\nvar defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\nfunction localeMonths (m, format) {\n if (!m) {\n return this._months;\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n}\n\nvar defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\nfunction localeMonthsShort (m, format) {\n if (!m) {\n return this._monthsShort;\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf$1.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf$1.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n}\n\nfunction getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n}\n\nvar defaultMonthsShortRegex = matchWord;\nfunction monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n}\n\nvar defaultMonthsRegex = matchWord;\nfunction monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n}\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear () {\n return isLeapYear(this.year());\n}\n\nfunction createDate (y, m, d, h, M, s, ms) {\n //can't just apply() to create a date:\n //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply\n var date = new Date(y, m, d, h, M, s, ms);\n\n //the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n}\n\nfunction createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n //the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n//http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n});\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek () {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear () {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\n\nvar defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\nfunction localeWeekdays (m, format) {\n if (!m) {\n return this._weekdays;\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n}\n\nvar defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\nfunction localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n}\n\nvar defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\nfunction localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf$1.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf$1.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nvar defaultWeekdaysRegex = matchWord;\nfunction weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n}\n\nvar defaultWeekdaysShortRegex = matchWord;\nfunction weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n}\n\nvar defaultWeekdaysMinRegex = matchWord;\nfunction weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n}\n\n\nfunction computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n});\n\nfunction meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n// PARSING\n\nfunction matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\nfunction localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\n\n// MOMENTS\n\n// Setting the hour should keep the time, because the user explicitly\n// specified which hour he wants. So trying to maintain the same hour (in\n// a new timezone) makes sense. Adding/subtracting hours does not follow\n// this rule.\nvar getSetHour = makeGetSet('Hours', true);\n\n// months\n// week\n// weekdays\n// meridiem\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n ordinalParse: defaultOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n};\n\n// internal storage for locale config files\nvar locales = {};\nvar localeFamilies = {};\nvar globalLocale;\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n}\n\nfunction loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n require('./locale/' + name);\n // because defineLocale currently also sets the global locale, we\n // want to undo that for lazy loaded locales\n getSetGlobalLocale(oldLocale);\n } catch (e) { }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale (name, config) {\n if (config !== null) {\n var parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale, parentConfig = baseConfig;\n // MERGE\n if (locales[name] != null) {\n parentConfig = locales[name]._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys$1(locales);\n}\n\nfunction checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\nvar basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\nvar tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\nvar isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n];\n\n// iso time formats and regexes\nvar isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n];\n\nvar aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n// date from iso format\nfunction configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\n// date from iso format or fallback\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray (config) {\n var i, date, input = [], currentDate, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse)) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n}\n\n\nfunction meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n}\n\nfunction createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (input === undefined) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (typeof(input) === 'object') {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n);\n\nvar prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n);\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +(new Date());\n};\n\nfunction Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration (obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// FORMATTING\n\nfunction offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset (input, keepLocalTime) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal () {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\nvar isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n\nfunction createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\n\nfunction parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add');\nvar subtract = createAdder(-1, 'subtract');\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n}\n\nfunction calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n}\n\nfunction clone () {\n return new Moment(this);\n}\n\nfunction isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n}\n\nfunction isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n}\n\nfunction isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n}\n\nfunction isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n}\n\nfunction diff (input, units, asFloat) {\n var that,\n zoneDelta,\n delta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n if (units === 'year' || units === 'month' || units === 'quarter') {\n output = monthDiff(this, that);\n if (units === 'quarter') {\n output = output / 3;\n } else if (units === 'year') {\n output = output / 12;\n }\n } else {\n delta = this - that;\n output = units === 'second' ? delta / 1e3 : // 1000\n units === 'minute' ? delta / 6e4 : // 1000 * 60\n units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n delta;\n }\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString () {\n var m = this.clone().utc();\n if (0 < m.year() && m.year() <= 9999) {\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n return this.toDate().toISOString();\n } else {\n return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n } else {\n return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 < this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData () {\n return this._locale;\n}\n\nfunction startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n}\n\nfunction endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n}\n\nfunction valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n}\n\nfunction unix () {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate () {\n return new Date(this.valueOf());\n}\n\nfunction toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n}\n\nfunction toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n}\n\nfunction toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$1 () {\n return isValid(this);\n}\n\nfunction parsingFlags () {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt () {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n});\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n}\n\nfunction getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n}\n\nfunction getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIOROITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0], 10);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n// MOMENTS\n\nvar getSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$1;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\n\n// Year\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\n\n// Week Year\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\n\n// Quarter\nproto.quarter = proto.quarters = getSetQuarter;\n\n// Month\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\n\n// Week\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\n\n// Day\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\n\n// Hour\nproto.hour = proto.hours = getSetHour;\n\n// Minute\nproto.minute = proto.minutes = getSetMinute;\n\n// Second\nproto.second = proto.seconds = getSetSecond;\n\n// Millisecond\nproto.millisecond = proto.milliseconds = getSetMillisecond;\n\n// Offset\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\n\n// Timezone\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\n\n// Deprecations\nproto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\nproto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\nproto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\nproto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\nproto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\nfunction createUnix (input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat (string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\n\n// Month\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\n\n// Week\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n// Day of Week\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n// Hours\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n ordinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n});\n\n// Side effect imports\nhooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\nhooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\nvar mathAbs = Math.abs;\n\nfunction abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n}\n\nfunction monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n}\n\nfunction as (units) {\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n}\n\n// TODO: Use this.as('ms')?\nfunction valueOf$1 () {\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n}\n\nfunction makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms');\nvar asSeconds = makeAs('s');\nvar asMinutes = makeAs('m');\nvar asHours = makeAs('h');\nvar asDays = makeAs('d');\nvar asWeeks = makeAs('w');\nvar asMonths = makeAs('M');\nvar asYears = makeAs('y');\n\nfunction get$2 (units) {\n units = normalizeUnits(units);\n return this[units + 's']();\n}\n\nfunction makeGetter(name) {\n return function () {\n return this._data[name];\n };\n}\n\nvar milliseconds = makeGetter('milliseconds');\nvar seconds = makeGetter('seconds');\nvar minutes = makeGetter('minutes');\nvar hours = makeGetter('hours');\nvar days = makeGetter('days');\nvar months = makeGetter('months');\nvar years = makeGetter('years');\n\nfunction weeks () {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round;\nvar thresholds = {\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n};\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds < thresholds.s && ['s', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n return true;\n}\n\nfunction humanize (withSuffix) {\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds;\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n return (total < 0 ? '-' : '') +\n 'P' +\n (Y ? Y + 'Y' : '') +\n (M ? M + 'M' : '') +\n (D ? D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? h + 'H' : '') +\n (m ? m + 'M' : '') +\n (s ? s + 'S' : '');\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\n// Deprecations\nproto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\nproto$2.lang = lang;\n\n// Side effect imports\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n// Side effect imports\n\n\nhooks.version = '2.16.0';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\nreturn hooks;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.16.0@moment/moment.js\n// module id = 174\n// module chunks = 5","import TimePanel from './src/';\nexport default TimePanel;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","import TimePicker from './TimePicker';\nexport default TimePicker;\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","import React, { PropTypes } from 'react';\nimport Trigger from 'rc-trigger';\nimport Panel from './Panel';\nimport placements from './placements';\nimport moment from 'moment';\n\nfunction noop() {\n}\n\nfunction refFn(field, component) {\n this[field] = component;\n}\n\nconst Picker = React.createClass({\n propTypes: {\n prefixCls: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n defaultOpenValue: PropTypes.object,\n disabled: PropTypes.bool,\n allowEmpty: PropTypes.bool,\n defaultValue: PropTypes.object,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n align: PropTypes.object,\n placement: PropTypes.any,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n style: PropTypes.object,\n className: PropTypes.string,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n onChange: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n addon: PropTypes.func,\n },\n\n getDefaultProps() {\n return {\n clearText: 'clear',\n prefixCls: 'rc-time-picker',\n defaultOpen: false,\n style: {},\n className: '',\n align: {},\n defaultOpenValue: moment(),\n allowEmpty: true,\n showHour: true,\n showMinute: true,\n showSecond: true,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n hideDisabledOptions: false,\n placement: 'bottomLeft',\n onChange: noop,\n onOpen: noop,\n onClose: noop,\n addon: noop,\n };\n },\n\n getInitialState() {\n this.savePanelRef = refFn.bind(this, 'panelInstance');\n const { defaultOpen, defaultValue, open = defaultOpen, value = defaultValue } = this.props;\n return {\n open,\n value,\n };\n },\n\n componentWillReceiveProps(nextProps) {\n const { value, open } = nextProps;\n if ('value' in nextProps) {\n this.setState({\n value,\n });\n }\n if (open !== undefined) {\n this.setState({ open });\n }\n },\n\n onPanelChange(value) {\n this.setValue(value);\n },\n\n onPanelClear() {\n this.setValue(null);\n this.setOpen(false);\n },\n\n onVisibleChange(open) {\n this.setOpen(open);\n },\n\n onEsc() {\n this.setOpen(false);\n this.refs.picker.focus();\n },\n\n onKeyDown(e) {\n if (e.keyCode === 40) {\n this.setOpen(true);\n }\n },\n\n setValue(value) {\n if (!('value' in this.props)) {\n this.setState({\n value,\n });\n }\n this.props.onChange(value);\n },\n\n getFormat() {\n const { format, showHour, showMinute, showSecond } = this.props;\n if (format) {\n return format;\n }\n return [\n showHour ? 'HH' : '',\n showMinute ? 'mm' : '',\n showSecond ? 'ss' : '',\n ].filter(item => !!item).join(':');\n },\n\n getPanelElement() {\n const {\n prefixCls, placeholder, disabledHours,\n disabledMinutes, disabledSeconds, hideDisabledOptions,\n allowEmpty, showHour, showMinute, showSecond, defaultOpenValue, clearText,\n addon,\n } = this.props;\n return (\n <Panel\n clearText={clearText}\n prefixCls={`${prefixCls}-panel`}\n ref={this.savePanelRef}\n value={this.state.value}\n onChange={this.onPanelChange}\n onClear={this.onPanelClear}\n defaultOpenValue={defaultOpenValue}\n showHour={showHour}\n showMinute={showMinute}\n showSecond={showSecond}\n onEsc={this.onEsc}\n allowEmpty={allowEmpty}\n format={this.getFormat()}\n placeholder={placeholder}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n hideDisabledOptions={hideDisabledOptions}\n addon={addon}\n />\n );\n },\n\n setOpen(open, callback) {\n const { onOpen, onClose } = this.props;\n if (this.state.open !== open) {\n this.setState({\n open,\n }, callback);\n const event = {\n open,\n };\n if (open) {\n onOpen(event);\n } else {\n onClose(event);\n }\n }\n },\n\n render() {\n const {\n prefixCls, placeholder, placement, align,\n disabled, transitionName, style, className, showHour,\n showSecond, getPopupContainer,\n } = this.props;\n const { open, value } = this.state;\n let popupClassName;\n if (!showHour || !showSecond) {\n popupClassName = `${prefixCls}-panel-narrow`;\n }\n return (\n <Trigger\n prefixCls={`${prefixCls}-panel`}\n popupClassName={popupClassName}\n popup={this.getPanelElement()}\n popupAlign={align}\n builtinPlacements={placements}\n popupPlacement={placement}\n action={disabled ? [] : ['click']}\n destroyPopupOnHide\n getPopupContainer={getPopupContainer}\n popupTransitionName={transitionName}\n popupVisible={open}\n onPopupVisibleChange={this.onVisibleChange}\n >\n <span className={`${prefixCls} ${className}`} style={style}>\n <input\n className={`${prefixCls}-input`}\n ref=\"picker\" type=\"text\" placeholder={placeholder}\n readOnly\n onKeyDown={this.onKeyDown}\n disabled={disabled} value={value && value.format(this.getFormat()) || ''}\n />\n <span className={`${prefixCls}-icon`}/>\n </span>\n </Trigger>\n );\n },\n});\n\nexport default Picker;\n\n\n\n// WEBPACK FOOTER //\n// ./src/TimePicker.jsx","'use strict';\n\nmodule.exports = require('./Trigger');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.7.3@rc-trigger/lib/index.js\n// module id = 178\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _contains = require('rc-util/lib/Dom/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _addEventListener = require('rc-util/lib/Dom/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _Popup = require('./Popup');\n\nvar _Popup2 = _interopRequireDefault(_Popup);\n\nvar _utils = require('./utils');\n\nvar _getContainerRenderMixin = require('rc-util/lib/getContainerRenderMixin');\n\nvar _getContainerRenderMixin2 = _interopRequireDefault(_getContainerRenderMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n\nvar Trigger = _react2[\"default\"].createClass({\n displayName: 'Trigger',\n\n propTypes: {\n children: _react.PropTypes.any,\n action: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.arrayOf(_react.PropTypes.string)]),\n showAction: _react.PropTypes.any,\n hideAction: _react.PropTypes.any,\n getPopupClassNameFromAlign: _react.PropTypes.any,\n onPopupVisibleChange: _react.PropTypes.func,\n afterPopupVisibleChange: _react.PropTypes.func,\n popup: _react.PropTypes.oneOfType([_react.PropTypes.node, _react.PropTypes.func]).isRequired,\n popupStyle: _react.PropTypes.object,\n prefixCls: _react.PropTypes.string,\n popupClassName: _react.PropTypes.string,\n popupPlacement: _react.PropTypes.string,\n builtinPlacements: _react.PropTypes.object,\n popupTransitionName: _react.PropTypes.string,\n popupAnimation: _react.PropTypes.any,\n mouseEnterDelay: _react.PropTypes.number,\n mouseLeaveDelay: _react.PropTypes.number,\n zIndex: _react.PropTypes.number,\n focusDelay: _react.PropTypes.number,\n blurDelay: _react.PropTypes.number,\n getPopupContainer: _react.PropTypes.func,\n destroyPopupOnHide: _react.PropTypes.bool,\n mask: _react.PropTypes.bool,\n maskClosable: _react.PropTypes.bool,\n onPopupAlign: _react.PropTypes.func,\n popupAlign: _react.PropTypes.object,\n popupVisible: _react.PropTypes.bool,\n maskTransitionName: _react.PropTypes.string,\n maskAnimation: _react.PropTypes.string\n },\n\n mixins: [(0, _getContainerRenderMixin2[\"default\"])({\n autoMount: false,\n\n isVisible: function isVisible(instance) {\n return instance.state.popupVisible;\n },\n getContainer: function getContainer(instance) {\n var popupContainer = document.createElement('div');\n var mountNode = instance.props.getPopupContainer ? instance.props.getPopupContainer((0, _reactDom.findDOMNode)(instance)) : document.body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n },\n getComponent: function getComponent(instance) {\n var props = instance.props;\n var state = instance.state;\n\n var mouseProps = {};\n if (instance.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = instance.onPopupMouseEnter;\n }\n if (instance.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = instance.onPopupMouseLeave;\n }\n return _react2[\"default\"].createElement(\n _Popup2[\"default\"],\n (0, _extends3[\"default\"])({\n prefixCls: props.prefixCls,\n destroyPopupOnHide: props.destroyPopupOnHide,\n visible: state.popupVisible,\n className: props.popupClassName,\n action: props.action,\n align: instance.getPopupAlign(),\n onAlign: props.onPopupAlign,\n animation: props.popupAnimation,\n getClassNameFromAlign: instance.getPopupClassNameFromAlign\n }, mouseProps, {\n getRootDomNode: instance.getRootDomNode,\n style: props.popupStyle,\n mask: props.mask,\n zIndex: props.zIndex,\n transitionName: props.popupTransitionName,\n maskAnimation: props.maskAnimation,\n maskTransitionName: props.maskTransitionName\n }),\n typeof props.popup === 'function' ? props.popup() : props.popup\n );\n }\n })],\n\n getDefaultProps: function getDefaultProps() {\n return {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: []\n };\n },\n getInitialState: function getInitialState() {\n var props = this.props;\n var popupVisible = void 0;\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n return {\n popupVisible: popupVisible\n };\n },\n componentWillMount: function componentWillMount() {\n var _this = this;\n\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n },\n componentDidMount: function componentDidMount() {\n this.componentDidUpdate({}, {\n popupVisible: this.state.popupVisible\n });\n },\n componentWillReceiveProps: function componentWillReceiveProps(_ref) {\n var popupVisible = _ref.popupVisible;\n\n if (popupVisible !== undefined) {\n this.setState({\n popupVisible: popupVisible\n });\n }\n },\n componentDidUpdate: function componentDidUpdate(_, prevState) {\n var props = this.props;\n var state = this.state;\n this.renderComponent(null, function () {\n if (prevState.popupVisible !== state.popupVisible) {\n props.afterPopupVisibleChange(state.popupVisible);\n }\n });\n if (this.isClickToHide()) {\n if (state.popupVisible) {\n if (!this.clickOutsideHandler) {\n this.clickOutsideHandler = (0, _addEventListener2[\"default\"])(document, 'mousedown', this.onDocumentClick);\n this.touchOutsideHandler = (0, _addEventListener2[\"default\"])(document, 'touchstart', this.onDocumentClick);\n }\n return;\n }\n }\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.touchOutsideHandler.remove();\n this.clickOutsideHandler = null;\n this.touchOutsideHandler = null;\n }\n },\n componentWillUnmount: function componentWillUnmount() {\n this.clearDelayTimer();\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.touchOutsideHandler.remove();\n this.clickOutsideHandler = null;\n this.touchOutsideHandler = null;\n }\n },\n onMouseEnter: function onMouseEnter(e) {\n this.fireEvents('onMouseEnter', e);\n this.delaySetPopupVisible(true, this.props.mouseEnterDelay);\n },\n onMouseLeave: function onMouseLeave(e) {\n this.fireEvents('onMouseLeave', e);\n this.delaySetPopupVisible(false, this.props.mouseLeaveDelay);\n },\n onPopupMouseEnter: function onPopupMouseEnter() {\n this.clearDelayTimer();\n },\n onPopupMouseLeave: function onPopupMouseLeave(e) {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && this._component && (0, _contains2[\"default\"])(this._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n this.delaySetPopupVisible(false, this.props.mouseLeaveDelay);\n },\n onFocus: function onFocus(e) {\n this.fireEvents('onFocus', e);\n // incase focusin and focusout\n this.clearDelayTimer();\n if (this.isFocusToShow()) {\n this.focusTime = Date.now();\n this.delaySetPopupVisible(true, this.props.focusDelay);\n }\n },\n onMouseDown: function onMouseDown(e) {\n this.fireEvents('onMouseDown', e);\n this.preClickTime = Date.now();\n },\n onTouchStart: function onTouchStart(e) {\n this.fireEvents('onTouchStart', e);\n this.preTouchTime = Date.now();\n },\n onBlur: function onBlur(e) {\n this.fireEvents('onBlur', e);\n this.clearDelayTimer();\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.props.blurDelay);\n }\n },\n onClick: function onClick(event) {\n this.fireEvents('onClick', event);\n // focus will trigger click\n if (this.focusTime) {\n var preTime = void 0;\n if (this.preClickTime && this.preTouchTime) {\n preTime = Math.min(this.preClickTime, this.preTouchTime);\n } else if (this.preClickTime) {\n preTime = this.preClickTime;\n } else if (this.preTouchTime) {\n preTime = this.preTouchTime;\n }\n if (Math.abs(preTime - this.focusTime) < 20) {\n return;\n }\n this.focusTime = 0;\n }\n this.preClickTime = 0;\n this.preTouchTime = 0;\n event.preventDefault();\n var nextVisible = !this.state.popupVisible;\n if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n this.setPopupVisible(!this.state.popupVisible);\n }\n },\n onDocumentClick: function onDocumentClick(event) {\n if (this.props.mask && !this.props.maskClosable) {\n return;\n }\n var target = event.target;\n var root = (0, _reactDom.findDOMNode)(this);\n var popupNode = this.getPopupDomNode();\n if (!(0, _contains2[\"default\"])(root, target) && !(0, _contains2[\"default\"])(popupNode, target)) {\n this.close();\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n // for test\n if (this._component) {\n return this._component.isMounted() ? this._component.getPopupDomNode() : null;\n }\n return null;\n },\n getRootDomNode: function getRootDomNode() {\n return _reactDom2[\"default\"].findDOMNode(this);\n },\n getPopupClassNameFromAlign: function getPopupClassNameFromAlign(align) {\n var className = [];\n var props = this.props;\n var popupPlacement = props.popupPlacement;\n var builtinPlacements = props.builtinPlacements;\n var prefixCls = props.prefixCls;\n\n if (popupPlacement && builtinPlacements) {\n className.push((0, _utils.getPopupClassNameFromAlign)(builtinPlacements, prefixCls, align));\n }\n if (props.getPopupClassNameFromAlign) {\n className.push(props.getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n },\n getPopupAlign: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement;\n var popupAlign = props.popupAlign;\n var builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return (0, _utils.getAlignFromPlacement)(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n },\n setPopupVisible: function setPopupVisible(popupVisible) {\n this.clearDelayTimer();\n if (this.state.popupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible\n });\n }\n this.props.onPopupVisibleChange(popupVisible);\n }\n },\n delaySetPopupVisible: function delaySetPopupVisible(visible, delayS) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n this.delayTimer = setTimeout(function () {\n _this2.setPopupVisible(visible);\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible);\n }\n },\n clearDelayTimer: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n },\n createTwoChains: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n if (childPros[event] && props[event]) {\n return this['fire' + event];\n }\n return childPros[event] || props[event];\n },\n isClickToShow: function isClickToShow() {\n var _props = this.props;\n var action = _props.action;\n var showAction = _props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n },\n isClickToHide: function isClickToHide() {\n var _props2 = this.props;\n var action = _props2.action;\n var hideAction = _props2.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n },\n isMouseEnterToShow: function isMouseEnterToShow() {\n var _props3 = this.props;\n var action = _props3.action;\n var showAction = _props3.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n },\n isMouseLeaveToHide: function isMouseLeaveToHide() {\n var _props4 = this.props;\n var action = _props4.action;\n var hideAction = _props4.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n },\n isFocusToShow: function isFocusToShow() {\n var _props5 = this.props;\n var action = _props5.action;\n var showAction = _props5.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n },\n isBlurToHide: function isBlurToHide() {\n var _props6 = this.props;\n var action = _props6.action;\n var hideAction = _props6.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n },\n forcePopupAlign: function forcePopupAlign() {\n if (this.state.popupVisible && this.popupInstance && this.popupInstance.alignInstance) {\n this.popupInstance.alignInstance.forceAlign();\n }\n },\n fireEvents: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(e);\n }\n var callback = this.props[type];\n if (callback) {\n callback(e);\n }\n },\n close: function close() {\n this.setPopupVisible(false);\n },\n render: function render() {\n var props = this.props;\n var children = props.children;\n var child = _react2[\"default\"].Children.only(children);\n var newChildProps = {};\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n }\n\n return _react2[\"default\"].cloneElement(child, newChildProps);\n }\n});\n\nexports[\"default\"] = Trigger;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.7.3@rc-trigger/lib/Trigger.js\n// module id = 179\n// module chunks = 5","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.6.18.0@babel-runtime/helpers/extends.js\n// module id = 180\n// module chunks = 5","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.6.18.0@babel-runtime/core-js/object/assign.js\n// module id = 181\n// module chunks = 5","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/fn/object/assign.js\n// module id = 182\n// module chunks = 5","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/es6.object.assign.js\n// module id = 183\n// module chunks = 5","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_export.js\n// module id = 184\n// module chunks = 5","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_global.js\n// module id = 185\n// module chunks = 5","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_core.js\n// module id = 186\n// module chunks = 5","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_ctx.js\n// module id = 187\n// module chunks = 5","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_a-function.js\n// module id = 188\n// module chunks = 5","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_hide.js\n// module id = 189\n// module chunks = 5","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_object-dp.js\n// module id = 190\n// module chunks = 5","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_an-object.js\n// module id = 191\n// module chunks = 5","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_is-object.js\n// module id = 192\n// module chunks = 5","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_ie8-dom-define.js\n// module id = 193\n// module chunks = 5","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_descriptors.js\n// module id = 194\n// module chunks = 5","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_fails.js\n// module id = 195\n// module chunks = 5","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_dom-create.js\n// module id = 196\n// module chunks = 5","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_to-primitive.js\n// module id = 197\n// module chunks = 5","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_property-desc.js\n// module id = 198\n// module chunks = 5","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_object-assign.js\n// module id = 199\n// module chunks = 5","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_object-keys.js\n// module id = 200\n// module chunks = 5","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_object-keys-internal.js\n// module id = 201\n// module chunks = 5","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_has.js\n// module id = 202\n// module chunks = 5","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_to-iobject.js\n// module id = 203\n// module chunks = 5","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_iobject.js\n// module id = 204\n// module chunks = 5","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_cof.js\n// module id = 205\n// module chunks = 5","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_defined.js\n// module id = 206\n// module chunks = 5","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_array-includes.js\n// module id = 207\n// module chunks = 5","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_to-length.js\n// module id = 208\n// module chunks = 5","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_to-integer.js\n// module id = 209\n// module chunks = 5","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_to-index.js\n// module id = 210\n// module chunks = 5","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_shared-key.js\n// module id = 211\n// module chunks = 5","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_shared.js\n// module id = 212\n// module chunks = 5","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_uid.js\n// module id = 213\n// module chunks = 5","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_enum-bug-keys.js\n// module id = 214\n// module chunks = 5","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_object-gops.js\n// module id = 215\n// module chunks = 5","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_object-pie.js\n// module id = 216\n// module chunks = 5","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/_to-object.js\n// module id = 217\n// module chunks = 5","\"use strict\";\n\nmodule.exports = function contains(root, n) {\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n\n return false;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.3.4.1@rc-util/lib/Dom/contains.js\n// module id = 218\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = addEventListenerWrap;\n\nvar _addDomEventListener = require('add-dom-event-listener');\n\nvar _addDomEventListener2 = _interopRequireDefault(_addDomEventListener);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction addEventListenerWrap(target, eventType, cb) {\n /* eslint camelcase: 2 */\n var callback = _reactDom2[\"default\"].unstable_batchedUpdates ? function run(e) {\n _reactDom2[\"default\"].unstable_batchedUpdates(cb, e);\n } : cb;\n return (0, _addDomEventListener2[\"default\"])(target, eventType, callback);\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.3.4.1@rc-util/lib/Dom/addEventListener.js\n// module id = 219\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n target.addEventListener(eventType, wrapCallback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.0.1@add-dom-event-listener/lib/index.js\n// module id = 220\n// module chunks = 5","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.0.1@add-dom-event-listener/lib/EventObject.js\n// module id = 221\n// module chunks = 5","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.0.1@add-dom-event-listener/lib/EventBaseObject.js\n// module id = 222\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _rcAlign = require('rc-align');\n\nvar _rcAlign2 = _interopRequireDefault(_rcAlign);\n\nvar _rcAnimate = require('rc-animate');\n\nvar _rcAnimate2 = _interopRequireDefault(_rcAnimate);\n\nvar _PopupInner = require('./PopupInner');\n\nvar _PopupInner2 = _interopRequireDefault(_PopupInner);\n\nvar _LazyRenderBox = require('./LazyRenderBox');\n\nvar _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Popup = _react2[\"default\"].createClass({\n displayName: 'Popup',\n\n propTypes: {\n visible: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n getClassNameFromAlign: _react.PropTypes.func,\n onAlign: _react.PropTypes.func,\n getRootDomNode: _react.PropTypes.func,\n onMouseEnter: _react.PropTypes.func,\n align: _react.PropTypes.any,\n destroyPopupOnHide: _react.PropTypes.bool,\n className: _react.PropTypes.string,\n prefixCls: _react.PropTypes.string,\n onMouseLeave: _react.PropTypes.func\n },\n\n componentDidMount: function componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n },\n onAlign: function onAlign(popupDomNode, align) {\n var props = this.props;\n var alignClassName = props.getClassNameFromAlign(props.align);\n var currentAlignClassName = props.getClassNameFromAlign(align);\n if (alignClassName !== currentAlignClassName) {\n this.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = this.getClassName(currentAlignClassName);\n }\n props.onAlign(popupDomNode, align);\n },\n getPopupDomNode: function getPopupDomNode() {\n return _reactDom2[\"default\"].findDOMNode(this.refs.popup);\n },\n getTarget: function getTarget() {\n return this.props.getRootDomNode();\n },\n getMaskTransitionName: function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n },\n getTransitionName: function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n },\n getClassName: function getClassName(currentAlignClassName) {\n return this.props.prefixCls + ' ' + this.props.className + ' ' + currentAlignClassName;\n },\n getPopupElement: function getPopupElement() {\n var props = this.props;\n var align = props.align;\n var style = props.style;\n var visible = props.visible;\n var prefixCls = props.prefixCls;\n var destroyPopupOnHide = props.destroyPopupOnHide;\n\n var className = this.getClassName(this.currentAlignClassName || props.getClassNameFromAlign(align));\n var hiddenClassName = prefixCls + '-hidden';\n if (!visible) {\n this.currentAlignClassName = null;\n }\n var newStyle = (0, _extends3[\"default\"])({}, style, this.getZIndexStyle());\n var popupInnerProps = {\n className: className,\n prefixCls: prefixCls,\n ref: 'popup',\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n style: newStyle\n };\n if (destroyPopupOnHide) {\n return _react2[\"default\"].createElement(\n _rcAnimate2[\"default\"],\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName()\n },\n visible ? _react2[\"default\"].createElement(\n _rcAlign2[\"default\"],\n {\n target: this.getTarget,\n key: 'popup',\n ref: this.saveAlign,\n monitorWindowResize: true,\n align: align,\n onAlign: this.onAlign\n },\n _react2[\"default\"].createElement(\n _PopupInner2[\"default\"],\n (0, _extends3[\"default\"])({\n visible: true\n }, popupInnerProps),\n props.children\n )\n ) : null\n );\n }\n return _react2[\"default\"].createElement(\n _rcAnimate2[\"default\"],\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName(),\n showProp: 'xVisible'\n },\n _react2[\"default\"].createElement(\n _rcAlign2[\"default\"],\n {\n target: this.getTarget,\n key: 'popup',\n ref: this.saveAlign,\n monitorWindowResize: true,\n xVisible: visible,\n childrenProps: { visible: 'xVisible' },\n disabled: !visible,\n align: align,\n onAlign: this.onAlign\n },\n _react2[\"default\"].createElement(\n _PopupInner2[\"default\"],\n (0, _extends3[\"default\"])({\n hiddenClassName: hiddenClassName\n }, popupInnerProps),\n props.children\n )\n )\n );\n },\n getZIndexStyle: function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n },\n getMaskElement: function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = _react2[\"default\"].createElement(_LazyRenderBox2[\"default\"], {\n style: this.getZIndexStyle(),\n key: 'mask',\n className: props.prefixCls + '-mask',\n hiddenClassName: props.prefixCls + '-mask-hidden',\n visible: props.visible\n });\n if (maskTransition) {\n maskElement = _react2[\"default\"].createElement(\n _rcAnimate2[\"default\"],\n {\n key: 'mask',\n showProp: 'visible',\n transitionAppear: true,\n component: '',\n transitionName: maskTransition\n },\n maskElement\n );\n }\n }\n return maskElement;\n },\n saveAlign: function saveAlign(align) {\n this.alignInstance = align;\n },\n render: function render() {\n return _react2[\"default\"].createElement(\n 'div',\n null,\n this.getMaskElement(),\n this.getPopupElement()\n );\n }\n});\n\nexports[\"default\"] = Popup;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.7.3@rc-trigger/lib/Popup.js\n// module id = 223\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Align = require('./Align');\n\nvar _Align2 = _interopRequireDefault(_Align);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports[\"default\"] = _Align2[\"default\"]; // export this package's api\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.2@rc-align/lib/index.js\n// module id = 224\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _domAlign = require('dom-align');\n\nvar _domAlign2 = _interopRequireDefault(_domAlign);\n\nvar _addEventListener = require('rc-util/lib/Dom/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _isWindow = require('./isWindow');\n\nvar _isWindow2 = _interopRequireDefault(_isWindow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\nvar Align = _react2[\"default\"].createClass({\n displayName: 'Align',\n\n propTypes: {\n childrenProps: _react.PropTypes.object,\n align: _react.PropTypes.object.isRequired,\n target: _react.PropTypes.func,\n onAlign: _react.PropTypes.func,\n monitorBufferTime: _react.PropTypes.number,\n monitorWindowResize: _react.PropTypes.bool,\n disabled: _react.PropTypes.bool,\n children: _react.PropTypes.any\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n target: function target() {\n return window;\n },\n onAlign: function onAlign() {},\n\n monitorBufferTime: 50,\n monitorWindowResize: false,\n disabled: false\n };\n },\n componentDidMount: function componentDidMount() {\n var props = this.props;\n // if parent ref not attached .... use document.getElementById\n this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n },\n componentDidUpdate: function componentDidUpdate(prevProps) {\n var reAlign = false;\n var props = this.props;\n\n if (!props.disabled) {\n if (prevProps.disabled || prevProps.align !== props.align) {\n reAlign = true;\n } else {\n var lastTarget = prevProps.target();\n var currentTarget = props.target();\n if ((0, _isWindow2[\"default\"])(lastTarget) && (0, _isWindow2[\"default\"])(currentTarget)) {\n reAlign = false;\n } else if (lastTarget !== currentTarget) {\n reAlign = true;\n }\n }\n }\n\n if (reAlign) {\n this.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n this.startMonitorWindowResize();\n } else {\n this.stopMonitorWindowResize();\n }\n },\n componentWillUnmount: function componentWillUnmount() {\n this.stopMonitorWindowResize();\n },\n startMonitorWindowResize: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);\n this.resizeHandler = (0, _addEventListener2[\"default\"])(window, 'resize', this.bufferMonitor);\n }\n },\n stopMonitorWindowResize: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n },\n forceAlign: function forceAlign() {\n var props = this.props;\n if (!props.disabled) {\n var source = _reactDom2[\"default\"].findDOMNode(this);\n props.onAlign(source, (0, _domAlign2[\"default\"])(source, props.target(), props.align));\n }\n },\n render: function render() {\n var _props = this.props;\n var childrenProps = _props.childrenProps;\n var children = _props.children;\n\n var child = _react2[\"default\"].Children.only(children);\n if (childrenProps) {\n var newProps = {};\n for (var prop in childrenProps) {\n if (childrenProps.hasOwnProperty(prop)) {\n newProps[prop] = this.props[childrenProps[prop]];\n }\n }\n return _react2[\"default\"].cloneElement(child, newProps);\n }\n return child;\n }\n});\n\nexports[\"default\"] = Align;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.2@rc-align/lib/Align.js\n// module id = 225\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _getOffsetParent = require('./getOffsetParent');\n\nvar _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);\n\nvar _getVisibleRectForElement = require('./getVisibleRectForElement');\n\nvar _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);\n\nvar _adjustForViewport = require('./adjustForViewport');\n\nvar _adjustForViewport2 = _interopRequireDefault(_adjustForViewport);\n\nvar _getRegion = require('./getRegion');\n\nvar _getRegion2 = _interopRequireDefault(_getRegion);\n\nvar _getElFuturePos = require('./getElFuturePos');\n\nvar _getElFuturePos2 = _interopRequireDefault(_getElFuturePos);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// http://yiminghe.iteye.com/blog/1124720\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n _utils2[\"default\"].each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n = void 0;\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\nfunction domAlign(el, refNode, align) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var target = align.target || refNode;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n\n var fail = 0;\n // 当前节点可以被放置的显示区域\n var visibleRect = (0, _getVisibleRectForElement2[\"default\"])(source);\n // 当前节点所占的区域, left/top/width/height\n var elRegion = (0, _getRegion2[\"default\"])(source);\n // 参照节点所占的区域, left/top/width/height\n var refNodeRegion = (0, _getRegion2[\"default\"])(target);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, refNodeRegion);\n // 当前节点将要被放置的位置\n var elFuturePos = (0, _getElFuturePos2[\"default\"])(elRegion, refNodeRegion, points, offset, targetOffset);\n // 当前节点将要所处的区域\n var newElRegion = _utils2[\"default\"].merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (visibleRect && (overflow.adjustX || overflow.adjustY)) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/ig, {\n l: 'r',\n r: 'l'\n });\n // 偏移量也反下\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = (0, _getElFuturePos2[\"default\"])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/ig, {\n t: 'b',\n b: 't'\n });\n // 偏移量也反下\n var _newOffset = flipOffset(offset, 1);\n var _newTargetOffset = flipOffset(targetOffset, 1);\n var _newElFuturePos = (0, _getElFuturePos2[\"default\"])(elRegion, refNodeRegion, _newPoints, _newOffset, _newTargetOffset);\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = (0, _getElFuturePos2[\"default\"])(elRegion, refNodeRegion, points, offset, targetOffset);\n _utils2[\"default\"].mix(newElRegion, elFuturePos);\n }\n\n // 检查反下后的位置是否可以放下了\n // 如果仍然放不下只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isFailX(elFuturePos, elRegion, visibleRect);\n\n newOverflowCfg.adjustY = overflow.adjustY && isFailY(elFuturePos, elRegion, visibleRect);\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = (0, _adjustForViewport2[\"default\"])(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n _utils2[\"default\"].css(source, 'width', _utils2[\"default\"].width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n _utils2[\"default\"].css(source, 'height', _utils2[\"default\"].height(source) + newElRegion.height - elRegion.height);\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n _utils2[\"default\"].offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform\n });\n\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n\ndomAlign.__getOffsetParent = _getOffsetParent2[\"default\"];\n\ndomAlign.__getVisibleRectForElement = _getVisibleRectForElement2[\"default\"];\n\nexports[\"default\"] = domAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/index.js\n// module id = 226\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _propertyUtils = require('./propertyUtils');\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nvar getComputedStyleX = void 0;\n\nfunction force(x, y) {\n return x + y;\n}\n\nfunction css(el, name, v) {\n var value = v;\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = value + 'px';\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box = void 0;\n var x = void 0;\n var y = void 0;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = elem.ownerDocument;\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = (0, _propertyUtils.getTransitionProperty)(elem) || '';\n (0, _propertyUtils.setTransitionProperty)(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = presetH + 'px';\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = presetV + 'px';\n }\n var old = getOffset(elem);\n var originalStyle = {};\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n force(elem.offsetTop, elem.offsetLeft);\n if ('left' in offset || 'top' in offset) {\n (0, _propertyUtils.setTransitionProperty)(elem, originalTransition);\n }\n var ret = {};\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n var _off = offset[_key] - originalOffset[_key];\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = (0, _propertyUtils.getTransformXY)(elem);\n var resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n (0, _propertyUtils.setTransformXY)(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && (0, _propertyUtils.getTransformName)() in document.body.style) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name = void 0;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop = void 0;\n var j = void 0;\n var i = void 0;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n if (prop === 'border') {\n cssProp = '' + prop + which[i] + 'Width';\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n domUtils['doc' + name] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement['scroll' + name],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body['scroll' + name], domUtils['viewport' + name](d));\n };\n\n domUtils['viewport' + name] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = 'client' + name;\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n var extra = ex;\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem, computedStyle);\n var cssBoxValue = 0;\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle));\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val = void 0;\n var elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils['outer' + first] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i = void 0;\n var ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n for (var i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n\n viewportWidth: 0,\n viewportHeight: 0\n};\n\nmix(utils, domUtils);\n\nexports[\"default\"] = utils;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/utils.js\n// module id = 227\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTransformName = getTransformName;\nexports.setTransitionProperty = setTransitionProperty;\nexports.getTransitionProperty = getTransitionProperty;\nexports.getTransformXY = getTransformXY;\nexports.setTransformXY = setTransformXY;\nvar vendorPrefix = void 0;\n\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? getVendorPrefix() + 'TransitionProperty' : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? getVendorPrefix() + 'Transform' : 'transform';\n}\n\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return { x: parseFloat(matrix[12] || matrix[4], 0), y: parseFloat(matrix[13] || matrix[5], 0) };\n }\n return {\n x: 0,\n y: 0\n };\n}\n\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\n\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var arr = void 0;\n var match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, 'matrix(' + arr.join(',') + ')');\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, 'matrix3d(' + arr.join(',') + ')');\n }\n } else {\n setTransform(node, 'translateX(' + xy.x + 'px) translateY(' + xy.y + 'px) translateZ(0)');\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/propertyUtils.js\n// module id = 228\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nfunction getOffsetParent(element) {\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n var doc = element.ownerDocument;\n var body = doc.body;\n var parent = void 0;\n var positionStyle = _utils2[\"default\"].css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : element.parentNode;\n }\n\n for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {\n positionStyle = _utils2[\"default\"].css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexports[\"default\"] = getOffsetParent;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/getOffsetParent.js\n// module id = 229\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _getOffsetParent = require('./getOffsetParent');\n\nvar _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = (0, _getOffsetParent2[\"default\"])(element);\n var scrollX = void 0;\n var scrollY = void 0;\n var winSize = void 0;\n var doc = element.ownerDocument;\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && _utils2[\"default\"].css(el, 'overflow') !== 'visible') {\n var pos = _utils2[\"default\"].offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = (0, _getOffsetParent2[\"default\"])(el);\n }\n\n // Clip by window's viewport.\n scrollX = _utils2[\"default\"].getWindowScrollLeft(win);\n scrollY = _utils2[\"default\"].getWindowScrollTop(win);\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n winSize = {\n width: _utils2[\"default\"].viewportWidth(win),\n height: _utils2[\"default\"].viewportHeight(win)\n };\n visibleRect.right = Math.min(visibleRect.right, scrollX + winSize.width);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + winSize.height);\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nexports[\"default\"] = getVisibleRectForElement;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/getVisibleRectForElement.js\n// module id = 230\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = _utils2[\"default\"].clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return _utils2[\"default\"].mix(pos, size);\n}\n\nexports[\"default\"] = adjustForViewport;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/adjustForViewport.js\n// module id = 231\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getRegion(node) {\n var offset = void 0;\n var w = void 0;\n var h = void 0;\n if (!_utils2[\"default\"].isWindow(node) && node.nodeType !== 9) {\n offset = _utils2[\"default\"].offset(node);\n w = _utils2[\"default\"].outerWidth(node);\n h = _utils2[\"default\"].outerHeight(node);\n } else {\n var win = _utils2[\"default\"].getWindow(node);\n offset = {\n left: _utils2[\"default\"].getWindowScrollLeft(win),\n top: _utils2[\"default\"].getWindowScrollTop(win)\n };\n w = _utils2[\"default\"].viewportWidth(win);\n h = _utils2[\"default\"].viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexports[\"default\"] = getRegion;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/getRegion.js\n// module id = 232\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _getAlignOffset = require('./getAlignOffset');\n\nvar _getAlignOffset2 = _interopRequireDefault(_getAlignOffset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var xy = void 0;\n var diff = void 0;\n var p1 = void 0;\n var p2 = void 0;\n\n xy = {\n left: elRegion.left,\n top: elRegion.top\n };\n\n p1 = (0, _getAlignOffset2[\"default\"])(refNodeRegion, points[1]);\n p2 = (0, _getAlignOffset2[\"default\"])(elRegion, points[0]);\n\n diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: xy.left - diff[0] + offset[0] - targetOffset[0],\n top: xy.top - diff[1] + offset[1] - targetOffset[1]\n };\n}\n\nexports[\"default\"] = getElFuturePos;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/getElFuturePos.js\n// module id = 233\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = void 0;\n var y = void 0;\n\n x = region.left;\n y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nexports[\"default\"] = getAlignOffset;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.5.2@dom-align/lib/getAlignOffset.js\n// module id = 234\n// module chunks = 5","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isWindow;\nfunction isWindow(obj) {\n /* eslint no-eq-null: 0 */\n /* eslint eqeqeq: 0 */\n return obj != null && obj == obj.window;\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.2@rc-align/lib/isWindow.js\n// module id = 235\n// module chunks = 5","'use strict';\n\n// export this package's api\nmodule.exports = require('./Animate');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.1@rc-animate/lib/index.js\n// module id = 236\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _ChildrenUtils = require('./ChildrenUtils');\n\nvar _AnimateChild = require('./AnimateChild');\n\nvar _AnimateChild2 = _interopRequireDefault(_AnimateChild);\n\nvar _util = require('./util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar defaultKey = 'rc_animate_' + Date.now();\n\n\nfunction getChildrenFromProps(props) {\n var children = props.children;\n if (_react2[\"default\"].isValidElement(children)) {\n if (!children.key) {\n return _react2[\"default\"].cloneElement(children, {\n key: defaultKey\n });\n }\n }\n return children;\n}\n\nfunction noop() {}\n\nvar Animate = _react2[\"default\"].createClass({\n displayName: 'Animate',\n\n propTypes: {\n component: _react2[\"default\"].PropTypes.any,\n animation: _react2[\"default\"].PropTypes.object,\n transitionName: _react2[\"default\"].PropTypes.oneOfType([_react2[\"default\"].PropTypes.string, _react2[\"default\"].PropTypes.object]),\n transitionEnter: _react2[\"default\"].PropTypes.bool,\n transitionAppear: _react2[\"default\"].PropTypes.bool,\n exclusive: _react2[\"default\"].PropTypes.bool,\n transitionLeave: _react2[\"default\"].PropTypes.bool,\n onEnd: _react2[\"default\"].PropTypes.func,\n onEnter: _react2[\"default\"].PropTypes.func,\n onLeave: _react2[\"default\"].PropTypes.func,\n onAppear: _react2[\"default\"].PropTypes.func,\n showProp: _react2[\"default\"].PropTypes.string\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n animation: {},\n component: 'span',\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n onEnd: noop,\n onEnter: noop,\n onLeave: noop,\n onAppear: noop\n };\n },\n getInitialState: function getInitialState() {\n this.currentlyAnimatingKeys = {};\n this.keysToEnter = [];\n this.keysToLeave = [];\n return {\n children: (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(this.props))\n };\n },\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n var showProp = this.props.showProp;\n var children = this.state.children;\n if (showProp) {\n children = children.filter(function (child) {\n return !!child.props[showProp];\n });\n }\n children.forEach(function (child) {\n if (child) {\n _this.performAppear(child.key);\n }\n });\n },\n componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n this.nextProps = nextProps;\n var nextChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(nextProps));\n var props = this.props;\n // exclusive needs immediate response\n if (props.exclusive) {\n Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {\n _this2.stop(key);\n });\n }\n var showProp = props.showProp;\n var currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n // last props children if exclusive\n var currentChildren = props.exclusive ? (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) : this.state.children;\n // in case destroy in showProp mode\n var newChildren = [];\n if (showProp) {\n currentChildren.forEach(function (currentChild) {\n var nextChild = currentChild && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, currentChild.key);\n var newChild = void 0;\n if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {\n newChild = _react2[\"default\"].cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));\n } else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n });\n nextChildren.forEach(function (nextChild) {\n if (!nextChild || !(0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, nextChild.key)) {\n newChildren.push(nextChild);\n }\n });\n } else {\n newChildren = (0, _ChildrenUtils.mergeChildren)(currentChildren, nextChildren);\n }\n\n // need render to avoid update\n this.setState({\n children: newChildren\n });\n\n nextChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasPrev = child && (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);\n if (showProp) {\n var showInNext = child.props[showProp];\n if (hasPrev) {\n var showInNow = (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);\n if (!showInNow && showInNext) {\n _this2.keysToEnter.push(key);\n }\n } else if (showInNext) {\n _this2.keysToEnter.push(key);\n }\n } else if (!hasPrev) {\n _this2.keysToEnter.push(key);\n }\n });\n\n currentChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasNext = child && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, key);\n if (showProp) {\n var showInNow = child.props[showProp];\n if (hasNext) {\n var showInNext = (0, _ChildrenUtils.findShownChildInChildrenByKey)(nextChildren, key, showProp);\n if (!showInNext && showInNow) {\n _this2.keysToLeave.push(key);\n }\n } else if (showInNow) {\n _this2.keysToLeave.push(key);\n }\n } else if (!hasNext) {\n _this2.keysToLeave.push(key);\n }\n });\n },\n componentDidUpdate: function componentDidUpdate() {\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n },\n performEnter: function performEnter(key) {\n // may already remove by exclusive\n if (this.refs[key]) {\n this.currentlyAnimatingKeys[key] = true;\n this.refs[key].componentWillEnter(this.handleDoneAdding.bind(this, key, 'enter'));\n }\n },\n performAppear: function performAppear(key) {\n if (this.refs[key]) {\n this.currentlyAnimatingKeys[key] = true;\n this.refs[key].componentWillAppear(this.handleDoneAdding.bind(this, key, 'appear'));\n }\n },\n handleDoneAdding: function handleDoneAdding(key, type) {\n var props = this.props;\n delete this.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== this.nextProps) {\n return;\n }\n var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));\n if (!this.isValidChildByKey(currentChildren, key)) {\n // exclusive will not need this\n this.performLeave(key);\n } else {\n if (type === 'appear') {\n if (_util2[\"default\"].allowAppearCallback(props)) {\n props.onAppear(key);\n props.onEnd(key, true);\n }\n } else {\n if (_util2[\"default\"].allowEnterCallback(props)) {\n props.onEnter(key);\n props.onEnd(key, true);\n }\n }\n }\n },\n performLeave: function performLeave(key) {\n // may already remove by exclusive\n if (this.refs[key]) {\n this.currentlyAnimatingKeys[key] = true;\n this.refs[key].componentWillLeave(this.handleDoneLeaving.bind(this, key));\n }\n },\n handleDoneLeaving: function handleDoneLeaving(key) {\n var props = this.props;\n delete this.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== this.nextProps) {\n return;\n }\n var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));\n // in case state change is too fast\n if (this.isValidChildByKey(currentChildren, key)) {\n this.performEnter(key);\n } else {\n var end = function end() {\n if (_util2[\"default\"].allowLeaveCallback(props)) {\n props.onLeave(key);\n props.onEnd(key, false);\n }\n };\n /* eslint react/no-is-mounted:0 */\n if (this.isMounted() && !(0, _ChildrenUtils.isSameChildren)(this.state.children, currentChildren, props.showProp)) {\n this.setState({\n children: currentChildren\n }, end);\n } else {\n end();\n }\n }\n },\n isValidChildByKey: function isValidChildByKey(currentChildren, key) {\n var showProp = this.props.showProp;\n if (showProp) {\n return (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);\n }\n return (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);\n },\n stop: function stop(key) {\n delete this.currentlyAnimatingKeys[key];\n var component = this.refs[key];\n if (component) {\n component.stop();\n }\n },\n render: function render() {\n var props = this.props;\n this.nextProps = props;\n var stateChildren = this.state.children;\n var children = null;\n if (stateChildren) {\n children = stateChildren.map(function (child) {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for <rc-animate> children');\n }\n return _react2[\"default\"].createElement(\n _AnimateChild2[\"default\"],\n {\n key: child.key,\n ref: child.key,\n animation: props.animation,\n transitionName: props.transitionName,\n transitionEnter: props.transitionEnter,\n transitionAppear: props.transitionAppear,\n transitionLeave: props.transitionLeave\n },\n child\n );\n });\n }\n var Component = props.component;\n if (Component) {\n var passedProps = props;\n if (typeof Component === 'string') {\n passedProps = {\n className: props.className,\n style: props.style\n };\n }\n return _react2[\"default\"].createElement(\n Component,\n passedProps,\n children\n );\n }\n return children[0] || null;\n }\n});\n\nexports[\"default\"] = Animate;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.1@rc-animate/lib/Animate.js\n// module id = 237\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArrayChildren = toArrayChildren;\nexports.findChildInChildrenByKey = findChildInChildrenByKey;\nexports.findShownChildInChildrenByKey = findShownChildInChildrenByKey;\nexports.findHiddenChildInChildrenByKey = findHiddenChildInChildrenByKey;\nexports.isSameChildren = isSameChildren;\nexports.mergeChildren = mergeChildren;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction toArrayChildren(children) {\n var ret = [];\n _react2[\"default\"].Children.forEach(children, function (child) {\n ret.push(child);\n });\n return ret;\n}\n\nfunction findChildInChildrenByKey(children, key) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (ret) {\n return;\n }\n if (child && child.key === key) {\n ret = child;\n }\n });\n }\n return ret;\n}\n\nfunction findShownChildInChildrenByKey(children, key, showProp) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (child && child.key === key && child.props[showProp]) {\n if (ret) {\n throw new Error('two child with same key for <rc-animate> children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n\nfunction findHiddenChildInChildrenByKey(children, key, showProp) {\n var found = 0;\n if (children) {\n children.forEach(function (child) {\n if (found) {\n return;\n }\n found = child && child.key === key && !child.props[showProp];\n });\n }\n return found;\n}\n\nfunction isSameChildren(c1, c2, showProp) {\n var same = c1.length === c2.length;\n if (same) {\n c1.forEach(function (child, index) {\n var child2 = c2[index];\n if (child && child2) {\n if (child && !child2 || !child && child2) {\n same = false;\n } else if (child.key !== child2.key) {\n same = false;\n } else if (showProp && child.props[showProp] !== child2.props[showProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\n\nfunction mergeChildren(prev, next) {\n var ret = [];\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextChildrenPending = {};\n var pendingChildren = [];\n prev.forEach(function (child) {\n if (child && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n } else {\n pendingChildren.push(child);\n }\n });\n\n next.forEach(function (child) {\n if (child && nextChildrenPending.hasOwnProperty(child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n\n ret = ret.concat(pendingChildren);\n\n return ret;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.1@rc-animate/lib/ChildrenUtils.js\n// module id = 238\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _cssAnimation = require('css-animation');\n\nvar _cssAnimation2 = _interopRequireDefault(_cssAnimation);\n\nvar _util = require('./util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave'\n};\n\nvar AnimateChild = _react2[\"default\"].createClass({\n displayName: 'AnimateChild',\n\n propTypes: {\n children: _react2[\"default\"].PropTypes.any\n },\n\n componentWillUnmount: function componentWillUnmount() {\n this.stop();\n },\n componentWillEnter: function componentWillEnter(done) {\n if (_util2[\"default\"].isEnterSupported(this.props)) {\n this.transition('enter', done);\n } else {\n done();\n }\n },\n componentWillAppear: function componentWillAppear(done) {\n if (_util2[\"default\"].isAppearSupported(this.props)) {\n this.transition('appear', done);\n } else {\n done();\n }\n },\n componentWillLeave: function componentWillLeave(done) {\n if (_util2[\"default\"].isLeaveSupported(this.props)) {\n this.transition('leave', done);\n } else {\n // always sync, do not interupt with react component life cycle\n // update hidden -> animate hidden ->\n // didUpdate -> animate leave -> unmount (if animate is none)\n done();\n }\n },\n transition: function transition(animationType, finishCallback) {\n var _this = this;\n\n var node = _reactDom2[\"default\"].findDOMNode(this);\n var props = this.props;\n var transitionName = props.transitionName;\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n this.stop();\n var end = function end() {\n _this.stopper = null;\n finishCallback();\n };\n if ((_cssAnimation.isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {\n var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;\n var activeName = name + '-active';\n if (nameIsObj && transitionName[animationType + 'Active']) {\n activeName = transitionName[animationType + 'Active'];\n }\n this.stopper = (0, _cssAnimation2[\"default\"])(node, {\n name: name,\n active: activeName\n }, end);\n } else {\n this.stopper = props.animation[animationType](node, end);\n }\n },\n stop: function stop() {\n var stopper = this.stopper;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n },\n render: function render() {\n return this.props.children;\n }\n});\n\nexports[\"default\"] = AnimateChild;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.1@rc-animate/lib/AnimateChild.js\n// module id = 239\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _Event = require('./Event');\n\nvar _Event2 = _interopRequireDefault(_Event);\n\nvar _componentClasses = require('component-classes');\n\nvar _componentClasses2 = _interopRequireDefault(_componentClasses);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isCssAnimationSupported = _Event2[\"default\"].endEvents.length !== 0;\n\n\nvar capitalPrefixes = ['Webkit', 'Moz', 'O',\n// ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n var style = window.getComputedStyle(node);\n\n var ret = '';\n for (var i = 0; i < prefixes.length; i++) {\n ret = style.getPropertyValue(prefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n if (isCssAnimationSupported) {\n var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n // sometimes, browser bug\n node.rcEndAnimTimeout = setTimeout(function () {\n node.rcEndAnimTimeout = null;\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }, time * 1000 + 200);\n }\n}\n\nfunction clearBrowserBugTimeout(node) {\n if (node.rcEndAnimTimeout) {\n clearTimeout(node.rcEndAnimTimeout);\n node.rcEndAnimTimeout = null;\n }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n var className = nameIsObj ? transitionName.name : transitionName;\n var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';\n var end = endCallback;\n var start = void 0;\n var active = void 0;\n var nodeClasses = (0, _componentClasses2[\"default\"])(node);\n\n if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n end = endCallback.end;\n start = endCallback.start;\n active = endCallback.active;\n }\n\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n nodeClasses.remove(className);\n nodeClasses.remove(activeClassName);\n\n _Event2[\"default\"].removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional end is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (end) {\n end();\n }\n };\n\n _Event2[\"default\"].addEndEventListener(node, node.rcEndListener);\n\n if (start) {\n start();\n }\n nodeClasses.add(className);\n\n node.rcAnimTimeout = setTimeout(function () {\n node.rcAnimTimeout = null;\n nodeClasses.add(activeClassName);\n if (active) {\n setTimeout(active, 0);\n }\n fixBrowserByTimeout(node);\n // 30ms for firefox\n }, 30);\n\n return {\n stop: function stop() {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }\n };\n};\n\ncssAnimation.style = function (node, style, callback) {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n _Event2[\"default\"].removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (callback) {\n callback();\n }\n };\n\n _Event2[\"default\"].addEndEventListener(node, node.rcEndListener);\n\n node.rcAnimTimeout = setTimeout(function () {\n for (var s in style) {\n if (style.hasOwnProperty(s)) {\n node.style[s] = style[s];\n }\n }\n node.rcAnimTimeout = null;\n fixBrowserByTimeout(node);\n }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n var property = p;\n var v = value;\n if (value === undefined) {\n v = property;\n property = '';\n }\n property = property || '';\n capitalPrefixes.forEach(function (prefix) {\n node.style[prefix + 'Transition' + property] = v;\n });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\n\nexports[\"default\"] = cssAnimation;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.3.0@css-animation/lib/index.js\n// module id = 240\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete EVENT_NAME_MAP.transitionend.transition;\n }\n\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n endEvents.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n\n\n endEvents: endEvents,\n\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexports[\"default\"] = TransitionEvents;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.3.0@css-animation/lib/Event.js\n// module id = 241\n// module chunks = 5","/**\n * Module dependencies.\n */\n\ntry {\n var index = require('indexof');\n} catch (err) {\n var index = require('component-indexof');\n}\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re){\n var arr = this.array();\n for (var i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list\n ? this.list.contains(name)\n : !! ~index(this.array(), name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.2.6@component-classes/index.js\n// module id = 242\n// module chunks = 5","module.exports = function(arr, obj){\n if (arr.indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.0.0.3@component-indexof/index.js\n// module id = 243\n// module chunks = 5","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar util = {\n isAppearSupported: function isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || props.animation.appear;\n },\n isEnterSupported: function isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || props.animation.enter;\n },\n isLeaveSupported: function isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || props.animation.leave;\n },\n allowAppearCallback: function allowAppearCallback(props) {\n return props.transitionAppear || props.animation.appear;\n },\n allowEnterCallback: function allowEnterCallback(props) {\n return props.transitionEnter || props.animation.enter;\n },\n allowLeaveCallback: function allowLeaveCallback(props) {\n return props.transitionLeave || props.animation.leave;\n }\n};\nexports[\"default\"] = util;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.3.1@rc-animate/lib/util.js\n// module id = 244\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _LazyRenderBox = require('./LazyRenderBox');\n\nvar _LazyRenderBox2 = _interopRequireDefault(_LazyRenderBox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar PopupInner = _react2[\"default\"].createClass({\n displayName: 'PopupInner',\n\n propTypes: {\n hiddenClassName: _react.PropTypes.string,\n className: _react.PropTypes.string,\n prefixCls: _react.PropTypes.string,\n onMouseEnter: _react.PropTypes.func,\n onMouseLeave: _react.PropTypes.func,\n children: _react.PropTypes.any\n },\n render: function render() {\n var props = this.props;\n var className = props.className;\n if (!props.visible) {\n className += ' ' + props.hiddenClassName;\n }\n return _react2[\"default\"].createElement(\n 'div',\n {\n className: className,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n style: props.style\n },\n _react2[\"default\"].createElement(\n _LazyRenderBox2[\"default\"],\n { className: props.prefixCls + '-content', visible: props.visible },\n props.children\n )\n );\n }\n});\n\nexports[\"default\"] = PopupInner;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.7.3@rc-trigger/lib/PopupInner.js\n// module id = 245\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar LazyRenderBox = _react2[\"default\"].createClass({\n displayName: 'LazyRenderBox',\n\n propTypes: {\n children: _react.PropTypes.any,\n className: _react.PropTypes.string,\n visible: _react.PropTypes.bool,\n hiddenClassName: _react.PropTypes.string\n },\n shouldComponentUpdate: function shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || nextProps.visible;\n },\n render: function render() {\n var _props = this.props;\n var hiddenClassName = _props.hiddenClassName;\n var visible = _props.visible;\n var props = (0, _objectWithoutProperties3[\"default\"])(_props, ['hiddenClassName', 'visible']);\n\n\n if (hiddenClassName || _react2[\"default\"].Children.count(props.children) > 1) {\n if (!visible && hiddenClassName) {\n props.className += ' ' + hiddenClassName;\n }\n return _react2[\"default\"].createElement('div', props);\n }\n\n return _react2[\"default\"].Children.only(props.children);\n }\n});\n\nexports[\"default\"] = LazyRenderBox;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.7.3@rc-trigger/lib/LazyRenderBox.js\n// module id = 246\n// module chunks = 5","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.6.18.0@babel-runtime/helpers/objectWithoutProperties.js\n// module id = 247\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.getAlignFromPlacement = getAlignFromPlacement;\nexports.getPopupClassNameFromAlign = getPopupClassNameFromAlign;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction isPointsEq(a1, a2) {\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nfunction getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return (0, _extends3[\"default\"])({}, baseAlign, align);\n}\n\nfunction getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.1.7.3@rc-trigger/lib/utils.js\n// module id = 248\n// module chunks = 5","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports[\"default\"] = getContainerRenderMixin;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction defaultGetContainer() {\n var container = document.createElement('div');\n document.body.appendChild(container);\n return container;\n}\n\nfunction getContainerRenderMixin(config) {\n var _config$autoMount = config.autoMount;\n var autoMount = _config$autoMount === undefined ? true : _config$autoMount;\n var _config$autoDestroy = config.autoDestroy;\n var autoDestroy = _config$autoDestroy === undefined ? true : _config$autoDestroy;\n var isVisible = config.isVisible;\n var getComponent = config.getComponent;\n var _config$getContainer = config.getContainer;\n var getContainer = _config$getContainer === undefined ? defaultGetContainer : _config$getContainer;\n\n\n var mixin = void 0;\n\n function _renderComponent(instance, componentArg, ready) {\n if (!isVisible || instance._component || isVisible(instance)) {\n if (!instance._container) {\n instance._container = getContainer(instance);\n }\n _reactDom2[\"default\"].unstable_renderSubtreeIntoContainer(instance, getComponent(instance, componentArg), instance._container, function callback() {\n instance._component = this;\n if (ready) {\n ready.call(this);\n }\n });\n }\n }\n\n if (autoMount) {\n mixin = _extends({}, mixin, {\n componentDidMount: function componentDidMount() {\n _renderComponent(this);\n },\n componentDidUpdate: function componentDidUpdate() {\n _renderComponent(this);\n }\n });\n }\n\n if (!autoMount || !autoDestroy) {\n mixin = _extends({}, mixin, {\n renderComponent: function renderComponent(componentArg, ready) {\n _renderComponent(this, componentArg, ready);\n }\n });\n }\n\n function _removeContainer(instance) {\n if (instance._container) {\n var container = instance._container;\n _reactDom2[\"default\"].unmountComponentAtNode(container);\n container.parentNode.removeChild(container);\n instance._container = null;\n }\n }\n\n if (autoDestroy) {\n mixin = _extends({}, mixin, {\n componentWillUnmount: function componentWillUnmount() {\n _removeContainer(this);\n }\n });\n } else {\n mixin = _extends({}, mixin, {\n removeContainer: function removeContainer() {\n _removeContainer(this);\n }\n });\n }\n\n return mixin;\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.3.4.1@rc-util/lib/getContainerRenderMixin.js\n// module id = 249\n// module chunks = 5","import React, { PropTypes } from 'react';\nimport Header from './Header';\nimport Combobox from './Combobox';\nimport moment from 'moment';\nimport classNames from 'classnames';\n\nfunction noop() {\n}\n\nfunction generateOptions(length, disabledOptions, hideDisabledOptions) {\n const arr = [];\n for (let value = 0; value < length; value++) {\n if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nconst Panel = React.createClass({\n propTypes: {\n clearText: PropTypes.string,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n value: PropTypes.object,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n onChange: PropTypes.func,\n onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n onClear: PropTypes.func,\n addon: PropTypes.func,\n },\n\n getDefaultProps() {\n return {\n prefixCls: 'rc-time-picker-panel',\n onChange: noop,\n onClear: noop,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n defaultOpenValue: moment(),\n addon: noop,\n };\n },\n\n getInitialState() {\n return {\n value: this.props.value,\n selectionRange: [],\n };\n },\n\n componentWillReceiveProps(nextProps) {\n const value = nextProps.value;\n if (value) {\n this.setState({\n value,\n });\n }\n },\n\n onChange(newValue) {\n this.setState({ value: newValue });\n this.props.onChange(newValue);\n },\n\n onClear() {\n this.props.onClear();\n },\n\n onCurrentSelectPanelChange(currentSelectPanel) {\n this.setState({ currentSelectPanel });\n },\n\n close() {\n this.props.onEsc();\n },\n\n render() {\n const {\n prefixCls, className, placeholder, disabledHours, disabledMinutes,\n disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond,\n format, defaultOpenValue, clearText, onEsc, addon,\n } = this.props;\n const {\n value, currentSelectPanel,\n } = this.state;\n const disabledHourOptions = disabledHours();\n const disabledMinuteOptions = disabledMinutes(value ? value.hour() : null);\n const disabledSecondOptions = disabledSeconds(value ? value.hour() : null,\n value ? value.minute() : null);\n const hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions);\n const minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions);\n const secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions);\n\n return (\n <div className={classNames({ [`${prefixCls}-inner`]: true, [className]: !!className })}>\n <Header\n clearText={clearText}\n prefixCls={prefixCls}\n defaultOpenValue={defaultOpenValue}\n value={value}\n currentSelectPanel={currentSelectPanel}\n onEsc={onEsc}\n format={format}\n placeholder={placeholder}\n hourOptions={hourOptions}\n minuteOptions={minuteOptions}\n secondOptions={secondOptions}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n onChange={this.onChange}\n onClear={this.onClear}\n allowEmpty={allowEmpty}\n />\n <Combobox\n prefixCls={prefixCls}\n value={value}\n defaultOpenValue={defaultOpenValue}\n format={format}\n onChange={this.onChange}\n showHour={showHour}\n showMinute={showMinute}\n showSecond={showSecond}\n hourOptions={hourOptions}\n minuteOptions={minuteOptions}\n secondOptions={secondOptions}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n onCurrentSelectPanelChange={this.onCurrentSelectPanelChange}\n />\n {addon(this)}\n </div>\n );\n },\n});\n\nexport default Panel;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Panel.jsx","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.6.18.0@babel-runtime/helpers/defineProperty.js\n// module id = 251\n// module chunks = 5","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.6.18.0@babel-runtime/core-js/object/define-property.js\n// module id = 252\n// module chunks = 5","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/fn/object/define-property.js\n// module id = 253\n// module chunks = 5","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.4.1@core-js/library/modules/es6.object.define-property.js\n// module id = 254\n// module chunks = 5","import React, { PropTypes } from 'react';\nimport moment from 'moment';\n\nconst Header = React.createClass({\n propTypes: {\n format: PropTypes.string,\n prefixCls: PropTypes.string,\n disabledDate: PropTypes.func,\n placeholder: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n onChange: PropTypes.func,\n onClear: PropTypes.func,\n onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n defaultOpenValue: PropTypes.object,\n currentSelectPanel: PropTypes.string,\n },\n\n getInitialState() {\n const { value, format } = this.props;\n return {\n str: value && value.format(format) || '',\n invalid: false,\n };\n },\n\n componentWillReceiveProps(nextProps) {\n const { value, format } = nextProps;\n this.setState({\n str: value && value.format(format) || '',\n invalid: false,\n });\n },\n\n onInputChange(event) {\n const str = event.target.value;\n this.setState({\n str,\n });\n const {\n format, hourOptions, minuteOptions, secondOptions,\n disabledHours, disabledMinutes,\n disabledSeconds, onChange, allowEmpty,\n } = this.props;\n\n if (str) {\n const originalValue = this.props.value;\n const value = this.getProtoValue().clone();\n const parsed = moment(str, format, true);\n if (!parsed.isValid()) {\n this.setState({\n invalid: true,\n });\n return;\n }\n value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());\n\n // if time value not allowed, response warning.\n if (\n hourOptions.indexOf(value.hour()) < 0 ||\n minuteOptions.indexOf(value.minute()) < 0 ||\n secondOptions.indexOf(value.second()) < 0\n ) {\n this.setState({\n invalid: true,\n });\n return;\n }\n\n // if time value is disabled, response warning.\n const disabledHourOptions = disabledHours();\n const disabledMinuteOptions = disabledMinutes(value.hour());\n const disabledSecondOptions = disabledSeconds(value.hour(), value.minute());\n if (\n (disabledHourOptions && disabledHourOptions.indexOf(value.hour()) >= 0) ||\n (disabledMinuteOptions && disabledMinuteOptions.indexOf(value.minute()) >= 0) ||\n (disabledSecondOptions && disabledSecondOptions.indexOf(value.second()) >= 0)\n ) {\n this.setState({\n invalid: true,\n });\n return;\n }\n\n if (originalValue) {\n if (\n originalValue.hour() !== value.hour() ||\n originalValue.minute() !== value.minute() ||\n originalValue.second() !== value.second()\n ) {\n // keep other fields for rc-calendar\n const changedValue = originalValue.clone();\n changedValue.hour(value.hour());\n changedValue.minute(value.minute());\n changedValue.second(value.second());\n onChange(changedValue);\n }\n } else if (originalValue !== value) {\n onChange(value);\n }\n } else if (allowEmpty) {\n onChange(null);\n } else {\n this.setState({\n invalid: true,\n });\n return;\n }\n\n this.setState({\n invalid: false,\n });\n },\n\n onKeyDown(e) {\n if (e.keyCode === 27) {\n this.props.onEsc();\n }\n },\n\n onClear() {\n this.setState({ str: '' });\n this.props.onClear();\n },\n\n getClearButton() {\n const { prefixCls, allowEmpty } = this.props;\n if (!allowEmpty) {\n return null;\n }\n return (<a\n className={`${prefixCls}-clear-btn`}\n role=\"button\"\n title={this.props.clearText}\n onMouseDown={this.onClear}\n />);\n },\n\n getProtoValue() {\n return this.props.value || this.props.defaultOpenValue;\n },\n\n getInput() {\n const { prefixCls, placeholder } = this.props;\n const { invalid, str } = this.state;\n const invalidClass = invalid ? `${prefixCls}-input-invalid` : '';\n return (\n <input\n className={`${prefixCls}-input ${invalidClass}`}\n ref=\"input\"\n onKeyDown={this.onKeyDown}\n value={str}\n placeholder={placeholder}\n onChange={this.onInputChange}\n />\n );\n },\n\n render() {\n const { prefixCls } = this.props;\n return (\n <div className={`${prefixCls}-input-wrap`}>\n {this.getInput()}\n {this.getClearButton()}\n </div>\n );\n },\n});\n\nexport default Header;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Header.jsx","import React, { PropTypes } from 'react';\nimport Select from './Select';\n\nconst formatOption = (option, disabledOptions) => {\n let value = `${option}`;\n if (option < 10) {\n value = `0${option}`;\n }\n\n let disabled = false;\n if (disabledOptions && disabledOptions.indexOf(option) >= 0) {\n disabled = true;\n }\n\n return {\n value,\n disabled,\n };\n};\n\nconst Combobox = React.createClass({\n propTypes: {\n format: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n onChange: PropTypes.func,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n onCurrentSelectPanelChange: PropTypes.func,\n },\n\n onItemChange(type, itemValue) {\n const { onChange, defaultOpenValue } = this.props;\n const value = (this.props.value || defaultOpenValue).clone();\n if (type === 'hour') {\n value.hour(itemValue);\n } else if (type === 'minute') {\n value.minute(itemValue);\n } else {\n value.second(itemValue);\n }\n onChange(value);\n },\n\n onEnterSelectPanel(range) {\n this.props.onCurrentSelectPanelChange(range);\n },\n\n getHourSelect(hour) {\n const { prefixCls, hourOptions, disabledHours, showHour } = this.props;\n if (!showHour) {\n return null;\n }\n const disabledOptions = disabledHours();\n\n return (\n <Select\n prefixCls={prefixCls}\n options={hourOptions.map(option => formatOption(option, disabledOptions))}\n selectedIndex={hourOptions.indexOf(hour)}\n type=\"hour\"\n onSelect={this.onItemChange}\n onMouseEnter={this.onEnterSelectPanel.bind(this, 'hour')}\n />\n );\n },\n\n getMinuteSelect(minute) {\n const { prefixCls, minuteOptions, disabledMinutes, defaultOpenValue, showMinute } = this.props;\n if (!showMinute) {\n return null;\n }\n const value = this.props.value || defaultOpenValue;\n const disabledOptions = disabledMinutes(value.hour());\n\n return (\n <Select\n prefixCls={prefixCls}\n options={minuteOptions.map(option => formatOption(option, disabledOptions))}\n selectedIndex={minuteOptions.indexOf(minute)}\n type=\"minute\"\n onSelect={this.onItemChange}\n onMouseEnter={this.onEnterSelectPanel.bind(this, 'minute')}\n />\n );\n },\n\n getSecondSelect(second) {\n const { prefixCls, secondOptions, disabledSeconds, showSecond, defaultOpenValue } = this.props;\n if (!showSecond) {\n return null;\n }\n const value = this.props.value || defaultOpenValue;\n const disabledOptions = disabledSeconds(value.hour(), value.minute());\n\n return (\n <Select\n prefixCls={prefixCls}\n options={secondOptions.map(option => formatOption(option, disabledOptions))}\n selectedIndex={secondOptions.indexOf(second)}\n type=\"second\"\n onSelect={this.onItemChange}\n onMouseEnter={this.onEnterSelectPanel.bind(this, 'second')}\n />\n );\n },\n\n render() {\n const { prefixCls, defaultOpenValue } = this.props;\n const value = this.props.value || defaultOpenValue;\n return (\n <div className={`${prefixCls}-combobox`}>\n {this.getHourSelect(value.hour())}\n {this.getMinuteSelect(value.minute())}\n {this.getSecondSelect(value.second())}\n </div>\n );\n },\n});\n\nexport default Combobox;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Combobox.jsx","import React, { PropTypes } from 'react';\nimport ReactDom from 'react-dom';\nimport classnames from 'classnames';\n\nconst scrollTo = (element, to, duration) => {\n const requestAnimationFrame = window.requestAnimationFrame ||\n function requestAnimationFrameTimeout() {\n return setTimeout(arguments[0], 10);\n };\n // jump to target if duration zero\n if (duration <= 0) {\n element.scrollTop = to;\n return;\n }\n const difference = to - element.scrollTop;\n const perTick = difference / duration * 10;\n\n requestAnimationFrame(() => {\n element.scrollTop = element.scrollTop + perTick;\n if (element.scrollTop === to) return;\n scrollTo(element, to, duration - 10);\n });\n};\n\nconst Select = React.createClass({\n propTypes: {\n prefixCls: PropTypes.string,\n options: PropTypes.array,\n selectedIndex: PropTypes.number,\n type: PropTypes.string,\n onSelect: PropTypes.func,\n onMouseEnter: PropTypes.func,\n },\n\n componentDidMount() {\n // jump to selected option\n this.scrollToSelected(0);\n },\n\n componentDidUpdate(prevProps) {\n // smooth scroll to selected option\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.scrollToSelected(120);\n }\n },\n\n onSelect(value) {\n const { onSelect, type } = this.props;\n onSelect(type, value);\n },\n\n getOptions() {\n const { options, selectedIndex, prefixCls } = this.props;\n return options.map((item, index) => {\n const cls = classnames({\n [`${prefixCls}-select-option-selected`]: selectedIndex === index,\n [`${prefixCls}-select-option-disabled`]: item.disabled,\n });\n let onclick = null;\n if (!item.disabled) {\n onclick = this.onSelect.bind(this, +item.value);\n }\n return (<li\n className={cls}\n key={index}\n onClick={onclick}\n disabled={item.disabled}\n >\n {item.value}\n </li>);\n });\n },\n\n scrollToSelected(duration) {\n // move to selected item\n const select = ReactDom.findDOMNode(this);\n const list = ReactDom.findDOMNode(this.refs.list);\n if (!list) {\n return;\n }\n let index = this.props.selectedIndex;\n if (index < 0) {\n index = 0;\n }\n const topOption = list.children[index];\n const to = topOption.offsetTop;\n scrollTo(select, to, duration);\n },\n\n render() {\n if (this.props.options.length === 0) {\n return null;\n }\n\n const { prefixCls } = this.props;\n\n return (\n <div\n className={`${prefixCls}-select`}\n onMouseEnter={this.props.onMouseEnter}\n >\n <ul ref=\"list\">{this.getOptions()}</ul>\n </div>\n );\n },\n});\n\nexport default Select;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Select.jsx","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/.2.2.5@classnames/index.js\n// module id = 258\n// module chunks = 5","const autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1,\n};\n\nconst targetOffset = [0, 0];\n\nconst placements = {\n bottomLeft: {\n points: ['tl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset,\n },\n bottomRight: {\n points: ['tr', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset,\n },\n topRight: {\n points: ['br', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset,\n },\n topLeft: {\n points: ['bl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset,\n },\n};\n\nexport default placements;\n\n\n\n// WEBPACK FOOTER //\n// ./src/placements.js"],"sourceRoot":""} \ No newline at end of file | ||
diff --git a/examples/disabled.html b/examples/disabled.html index c529fcc..64d0d96 100644 --- a/examples/disabled.html +++ b/examples/disabled.html | |||
@@ -2,7 +2,7 @@ | |||
2 | <html> | 2 | <html> |
3 | 3 | ||
4 | <head> | 4 | <head> |
5 | <title>disabled.js - example - rc-time-picker@2.1.0</title> | 5 | <title>disabled.js - example - rc-time-picker@2.2.0</title> |
6 | <meta name="viewport" | 6 | <meta name="viewport" |
7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> | 7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> |
8 | <meta charset="utf-8"/> | 8 | <meta charset="utf-8"/> |
@@ -251,14 +251,19 @@ Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-lic | |||
251 | <!--[if lt IE 9]> | 251 | <!--[if lt IE 9]> |
252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> | 252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> |
253 | <![endif]--> | 253 | <![endif]--> |
254 | 254 | <script src="https://as.alipayobjects.com/g/component/??modernizr/2.8.3/modernizr.js,fastclick/1.0.6/fastclick.js"></script> | |
255 | <script> | ||
256 | if(!window.Promise) { | ||
257 | document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>'); | ||
258 | } | ||
259 | </script> | ||
255 | <link rel="stylesheet" href="common.css" /> | 260 | <link rel="stylesheet" href="common.css" /> |
256 | </head> | 261 | </head> |
257 | 262 | ||
258 | <body> | 263 | <body> |
259 | <div class="container"> | 264 | <div class="container"> |
260 | <div class="header"> | 265 | <div class="header"> |
261 | <h1>rc-time-picker@2.1.0</h1> | 266 | <h1>rc-time-picker@2.2.0</h1> |
262 | 267 | ||
263 | <p>React TimePicker</p> | 268 | <p>React TimePicker</p> |
264 | </div> | 269 | </div> |
@@ -333,7 +338,7 @@ ReactDom.render( | |||
333 | alt="Fork me on GitHub" | 338 | alt="Fork me on GitHub" |
334 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | 339 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> |
335 | </a> | 340 | </a> |
336 | 341 | <script>FastClick.attach(document.body);</script> | |
337 | <script src="common.js?nowrap"></script> | 342 | <script src="common.js?nowrap"></script> |
338 | <script src="disabled.js?nowrap"></script> | 343 | <script src="disabled.js?nowrap"></script> |
339 | </body> | 344 | </body> |
diff --git a/examples/disabled.js b/examples/disabled.js index a4bf6ae..cf45e14 100644 --- a/examples/disabled.js +++ b/examples/disabled.js | |||
@@ -17,15 +17,15 @@ webpackJsonp([0],[ | |||
17 | 17 | ||
18 | var _react2 = _interopRequireDefault(_react); | 18 | var _react2 = _interopRequireDefault(_react); |
19 | 19 | ||
20 | var _reactDom = __webpack_require__(37); | 20 | var _reactDom = __webpack_require__(36); |
21 | 21 | ||
22 | var _reactDom2 = _interopRequireDefault(_reactDom); | 22 | var _reactDom2 = _interopRequireDefault(_reactDom); |
23 | 23 | ||
24 | var _moment = __webpack_require__(177); | 24 | var _moment = __webpack_require__(174); |
25 | 25 | ||
26 | var _moment2 = _interopRequireDefault(_moment); | 26 | var _moment2 = _interopRequireDefault(_moment); |
27 | 27 | ||
28 | var _rcTimePicker = __webpack_require__(178); | 28 | var _rcTimePicker = __webpack_require__(175); |
29 | 29 | ||
30 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); | 30 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); |
31 | 31 | ||
diff --git a/examples/disabled.js.map b/examples/disabled.js.map index b4569dd..bdad06b 100644 --- a/examples/disabled.js.map +++ b/examples/disabled.js.map | |||
@@ -1 +1 @@ | |||
{"version":3,"sources":["webpack:///./examples/disabled.js"],"names":[],"mappings":";;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;AAEA,KAAM,aAAa,IAAnB,C,CAXA;;AAYA,KAAM,MAAM,aAAa,UAAb,GAA0B,OAAtC;;AAEA,KAAM,MAAM,wBAAS,IAAT,CAAc,EAAd,EAAkB,MAAlB,CAAyB,EAAzB,CAAZ;;AAEA,UAAS,eAAT,CAAyB,MAAzB,EAAiC,eAAjC,EAAkD;AAChD,OAAM,MAAM,EAAZ;AACA,QAAK,IAAI,QAAQ,CAAjB,EAAoB,QAAQ,MAA5B,EAAoC,OAApC,EAA6C;AAC3C,SAAI,gBAAgB,OAAhB,CAAwB,KAAxB,IAAiC,CAArC,EAAwC;AACtC,WAAI,IAAJ,CAAS,KAAT;AACD;AACF;AACD,UAAO,GAAP;AACD;;AAED,UAAS,QAAT,CAAkB,KAAlB,EAAyB;AACvB,WAAQ,GAAR,CAAY,SAAS,MAAM,MAAN,CAAa,GAAb,CAArB;AACD;;AAED,UAAS,aAAT,GAAyB;AACvB,UAAO,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,EAA5B,EAAgC,EAAhC,CAAP;AACD;;AAED,UAAS,eAAT,CAAyB,CAAzB,EAA4B;AAC1B,WAAQ,CAAR;AACE,UAAK,CAAL;AACE,cAAO,gBAAgB,EAAhB,EAAoB,CAAC,EAAD,CAApB,CAAP;AACF,UAAK,EAAL;AACE,cAAO,gBAAgB,EAAhB,EAAoB,CAAC,CAAD,CAApB,CAAP;AACF;AACE,cAAO,gBAAgB,EAAhB,EAAoB,CAAC,CAAD,EAAI,EAAJ,CAApB,CAAP;AANJ;AAQD;;AAED,UAAS,eAAT,CAAyB,CAAzB,EAA4B,CAA5B,EAA+B;AAC7B,UAAO,CAAC,IAAI,IAAI,EAAT,CAAP;AACD;;AAED,oBAAS,MAAT,CACE;AACE,eAAY,UADd;AAEE,iBAAc,GAFhB;AAGE,cAAU,KAHZ;AAIE,aAAU,QAJZ;AAKE,kBAAe,aALjB;AAME,oBAAiB,eANnB;AAOE,oBAAiB;AAPnB,GADF,EAUE,SAAS,cAAT,CAAwB,iBAAxB,CAVF,E","file":"disabled.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport moment from 'moment';\n\nimport TimePicker from 'rc-time-picker';\n\nconst showSecond = true;\nconst str = showSecond ? 'HH:mm:ss' : 'HH:mm';\n\nconst now = moment().hour(14).minute(30);\n\nfunction generateOptions(length, excludedOptions) {\n const arr = [];\n for (let value = 0; value < length; value++) {\n if (excludedOptions.indexOf(value) < 0) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nfunction onChange(value) {\n console.log(value && value.format(str));\n}\n\nfunction disabledHours() {\n return [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23];\n}\n\nfunction disabledMinutes(h) {\n switch (h) {\n case 9:\n return generateOptions(60, [30]);\n case 21:\n return generateOptions(60, [0]);\n default:\n return generateOptions(60, [0, 30]);\n }\n}\n\nfunction disabledSeconds(h, m) {\n return [h + m % 60];\n}\n\nReactDom.render(\n <TimePicker\n showSecond={showSecond}\n defaultValue={now}\n className=\"xxx\"\n onChange={onChange}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n />,\n document.getElementById('__react-content')\n);\n\n\n\n/** WEBPACK FOOTER **\n ** ./examples/disabled.js\n **/"],"sourceRoot":""} \ No newline at end of file | {"version":3,"sources":["webpack:///./examples/disabled.js"],"names":["showSecond","str","now","hour","minute","generateOptions","length","excludedOptions","arr","value","indexOf","push","onChange","console","log","format","disabledHours","disabledMinutes","h","disabledSeconds","m","render","document","getElementById"],"mappings":";;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;AAEA,KAAMA,aAAa,IAAnB,C,CAXA;;AAYA,KAAMC,MAAMD,aAAa,UAAb,GAA0B,OAAtC;;AAEA,KAAME,MAAM,wBAASC,IAAT,CAAc,EAAd,EAAkBC,MAAlB,CAAyB,EAAzB,CAAZ;;AAEA,UAASC,eAAT,CAAyBC,MAAzB,EAAiCC,eAAjC,EAAkD;AAChD,OAAMC,MAAM,EAAZ;AACA,QAAK,IAAIC,QAAQ,CAAjB,EAAoBA,QAAQH,MAA5B,EAAoCG,OAApC,EAA6C;AAC3C,SAAIF,gBAAgBG,OAAhB,CAAwBD,KAAxB,IAAiC,CAArC,EAAwC;AACtCD,WAAIG,IAAJ,CAASF,KAAT;AACD;AACF;AACD,UAAOD,GAAP;AACD;;AAED,UAASI,QAAT,CAAkBH,KAAlB,EAAyB;AACvBI,WAAQC,GAAR,CAAYL,SAASA,MAAMM,MAAN,CAAad,GAAb,CAArB;AACD;;AAED,UAASe,aAAT,GAAyB;AACvB,UAAO,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,EAA5B,EAAgC,EAAhC,CAAP;AACD;;AAED,UAASC,eAAT,CAAyBC,CAAzB,EAA4B;AAC1B,WAAQA,CAAR;AACE,UAAK,CAAL;AACE,cAAOb,gBAAgB,EAAhB,EAAoB,CAAC,EAAD,CAApB,CAAP;AACF,UAAK,EAAL;AACE,cAAOA,gBAAgB,EAAhB,EAAoB,CAAC,CAAD,CAApB,CAAP;AACF;AACE,cAAOA,gBAAgB,EAAhB,EAAoB,CAAC,CAAD,EAAI,EAAJ,CAApB,CAAP;AANJ;AAQD;;AAED,UAASc,eAAT,CAAyBD,CAAzB,EAA4BE,CAA5B,EAA+B;AAC7B,UAAO,CAACF,IAAIE,IAAI,EAAT,CAAP;AACD;;AAED,oBAASC,MAAT,CACE;AACE,eAAYrB,UADd;AAEE,iBAAcE,GAFhB;AAGE,cAAU,KAHZ;AAIE,aAAUU,QAJZ;AAKE,kBAAeI,aALjB;AAME,oBAAiBC,eANnB;AAOE,oBAAiBE;AAPnB,GADF,EAUEG,SAASC,cAAT,CAAwB,iBAAxB,CAVF,E","file":"disabled.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport moment from 'moment';\n\nimport TimePicker from 'rc-time-picker';\n\nconst showSecond = true;\nconst str = showSecond ? 'HH:mm:ss' : 'HH:mm';\n\nconst now = moment().hour(14).minute(30);\n\nfunction generateOptions(length, excludedOptions) {\n const arr = [];\n for (let value = 0; value < length; value++) {\n if (excludedOptions.indexOf(value) < 0) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nfunction onChange(value) {\n console.log(value && value.format(str));\n}\n\nfunction disabledHours() {\n return [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23];\n}\n\nfunction disabledMinutes(h) {\n switch (h) {\n case 9:\n return generateOptions(60, [30]);\n case 21:\n return generateOptions(60, [0]);\n default:\n return generateOptions(60, [0, 30]);\n }\n}\n\nfunction disabledSeconds(h, m) {\n return [h + m % 60];\n}\n\nReactDom.render(\n <TimePicker\n showSecond={showSecond}\n defaultValue={now}\n className=\"xxx\"\n onChange={onChange}\n disabledHours={disabledHours}\n disabledMinutes={disabledMinutes}\n disabledSeconds={disabledSeconds}\n />,\n document.getElementById('__react-content')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./examples/disabled.js"],"sourceRoot":""} \ No newline at end of file | ||
diff --git a/examples/format.html b/examples/format.html new file mode 100644 index 0000000..db4d7f6 --- /dev/null +++ b/examples/format.html | |||
@@ -0,0 +1,311 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | |||
4 | <head> | ||
5 | <title>format.js - example - rc-time-picker@2.2.0</title> | ||
6 | <meta name="viewport" | ||
7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> | ||
8 | <meta charset="utf-8"/> | ||
9 | <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
10 | <link href="https://a.alipayobjects.com/normalize.css/3.0.1/normalize.css" rel="stylesheet"/> | ||
11 | <style> | ||
12 | .highlight pre { | ||
13 | padding: .8em 1em; | ||
14 | font: 14px/20px Consolas, Monaco, 'Andale Mono', monospace; | ||
15 | border: 1px solid #e5e8ec; | ||
16 | border-radius: 3px; | ||
17 | background-color: #21221d; | ||
18 | background-image: -webkit-linear-gradient(#21221d 50%, #272822 50%); | ||
19 | background-image: -moz-linear-gradient(#21221d 50%, #272822 50%); | ||
20 | background-image: -ms-linear-gradient(#21221d 50%, #272822 50%); | ||
21 | background-image: -o-linear-gradient(#21221d 50%, #272822 50%); | ||
22 | background-image: linear-gradient(#21221d 50%, #272822 50%); | ||
23 | background-size: 40px 40px; | ||
24 | background-origin: content-box; | ||
25 | overflow: auto; | ||
26 | -webkit-overflow-scrolling: touch; | ||
27 | } | ||
28 | |||
29 | .highlight pre > code { | ||
30 | font-family: inherit; | ||
31 | direction: ltr; | ||
32 | text-align: left; | ||
33 | white-space: pre; | ||
34 | word-spacing: normal; | ||
35 | vertical-align: 2px; | ||
36 | display: block; | ||
37 | -moz-tab-size: 2; | ||
38 | -o-tab-size: 2; | ||
39 | tab-size: 2; | ||
40 | -webkit-hyphens: none; | ||
41 | -moz-hyphens: none; | ||
42 | -ms-hyphens: none; | ||
43 | hyphens: none; | ||
44 | color: #E5E5C2; | ||
45 | } | ||
46 | </style> | ||
47 | <style> | ||
48 | /* | ||
49 | |||
50 | Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ | ||
51 | |||
52 | */ | ||
53 | |||
54 | .hljs { | ||
55 | display: block; | ||
56 | overflow-x: auto; | ||
57 | padding: 0.5em; | ||
58 | background: #23241f; | ||
59 | -webkit-text-size-adjust: none; | ||
60 | } | ||
61 | |||
62 | .hljs, | ||
63 | .hljs-tag, | ||
64 | .css .hljs-rule, | ||
65 | .css .hljs-value, | ||
66 | .aspectj .hljs-function, | ||
67 | .css .hljs-function | ||
68 | .hljs-preprocessor, | ||
69 | .hljs-pragma { | ||
70 | color: #f8f8f2; | ||
71 | } | ||
72 | |||
73 | .hljs-strongemphasis, | ||
74 | .hljs-strong, | ||
75 | .hljs-emphasis { | ||
76 | color: #a8a8a2; | ||
77 | } | ||
78 | |||
79 | .hljs-bullet, | ||
80 | .hljs-blockquote, | ||
81 | .hljs-horizontal_rule, | ||
82 | .hljs-number, | ||
83 | .hljs-regexp, | ||
84 | .alias .hljs-keyword, | ||
85 | .hljs-literal, | ||
86 | .hljs-hexcolor { | ||
87 | color: #ae81ff; | ||
88 | } | ||
89 | |||
90 | .hljs-code, | ||
91 | .hljs-title, | ||
92 | .css .hljs-class, | ||
93 | .hljs-class .hljs-title:last-child { | ||
94 | color: #a6e22e; | ||
95 | /*color: #e6db74;*/ | ||
96 | } | ||
97 | |||
98 | .hljs-link_url { | ||
99 | font-size: 80%; | ||
100 | } | ||
101 | |||
102 | .hljs-strong, | ||
103 | .hljs-strongemphasis { | ||
104 | font-weight: bold; | ||
105 | } | ||
106 | |||
107 | .hljs-emphasis, | ||
108 | .hljs-strongemphasis, | ||
109 | .hljs-class .hljs-title:last-child, | ||
110 | .hljs-typename { | ||
111 | font-style: italic; | ||
112 | } | ||
113 | |||
114 | .hljs-keyword, | ||
115 | .ruby .hljs-class .hljs-keyword:first-child, | ||
116 | .ruby .hljs-function .hljs-keyword, | ||
117 | .hljs-function, | ||
118 | .hljs-change, | ||
119 | .hljs-winutils, | ||
120 | .hljs-flow, | ||
121 | .nginx .hljs-title, | ||
122 | .tex .hljs-special, | ||
123 | .hljs-header, | ||
124 | .hljs-symbol, | ||
125 | .hljs-symbol .hljs-string, | ||
126 | .hljs-tag .hljs-title, | ||
127 | .hljs-value, | ||
128 | .alias .hljs-keyword:first-child, | ||
129 | .css .hljs-tag, | ||
130 | .css .unit, | ||
131 | .css .hljs-important { | ||
132 | color: #f92672; | ||
133 | } | ||
134 | |||
135 | .hljs-function .hljs-keyword, | ||
136 | .hljs-class .hljs-keyword:first-child, | ||
137 | .hljs-aspect .hljs-keyword:first-child, | ||
138 | .hljs-constant, | ||
139 | .hljs-typename, | ||
140 | .hljs-name, | ||
141 | .css .hljs-attribute { | ||
142 | color: #66d9ef; | ||
143 | } | ||
144 | |||
145 | .hljs-variable, | ||
146 | .hljs-params, | ||
147 | .hljs-class .hljs-title, | ||
148 | .hljs-aspect .hljs-title { | ||
149 | color: #f8f8f2; | ||
150 | } | ||
151 | |||
152 | .hljs-tag .hljs-value, | ||
153 | .hljs-string, | ||
154 | .css .hljs-id, | ||
155 | .hljs-subst, | ||
156 | .hljs-type, | ||
157 | .ruby .hljs-class .hljs-parent, | ||
158 | .django .hljs-template_tag, | ||
159 | .django .hljs-variable, | ||
160 | .smalltalk .hljs-class, | ||
161 | .django .hljs-filter .hljs-argument, | ||
162 | .smalltalk .hljs-localvars, | ||
163 | .smalltalk .hljs-array, | ||
164 | .hljs-attr_selector, | ||
165 | .hljs-pseudo, | ||
166 | .hljs-addition, | ||
167 | .hljs-stream, | ||
168 | .hljs-envvar, | ||
169 | .apache .hljs-tag, | ||
170 | .apache .hljs-cbracket, | ||
171 | .tex .hljs-command, | ||
172 | .hljs-prompt, | ||
173 | .hljs-link_label, | ||
174 | .hljs-link_url { | ||
175 | color: #e6db74; | ||
176 | } | ||
177 | |||
178 | .hljs-comment, | ||
179 | .hljs-annotation, | ||
180 | .hljs-decorator, | ||
181 | .hljs-pi, | ||
182 | .hljs-doctype, | ||
183 | .hljs-deletion, | ||
184 | .hljs-shebang, | ||
185 | .apache .hljs-sqbracket, | ||
186 | .tex .hljs-formula { | ||
187 | color: #75715e; | ||
188 | } | ||
189 | |||
190 | .coffeescript .javascript, | ||
191 | .javascript .xml, | ||
192 | .tex .hljs-formula, | ||
193 | .xml .javascript, | ||
194 | .xml .vbscript, | ||
195 | .xml .css, | ||
196 | .xml .hljs-cdata, | ||
197 | .xml .php, | ||
198 | .php .xml { | ||
199 | opacity: 0.5; | ||
200 | } | ||
201 | /***********/ | ||
202 | .hljs-attribute{ | ||
203 | color: #a6e22e; | ||
204 | } | ||
205 | /***** node keyword ******/ | ||
206 | .hljs-built_in{ | ||
207 | color: #3396dc; | ||
208 | font-weight: bold; | ||
209 | } | ||
210 | </style> | ||
211 | <style> | ||
212 | .container { | ||
213 | width: 86%; | ||
214 | max-width: 1000px; | ||
215 | margin-left: auto; | ||
216 | margin-right: auto; | ||
217 | } | ||
218 | |||
219 | .header p { | ||
220 | color: #666; | ||
221 | } | ||
222 | |||
223 | .example { | ||
224 | padding: 20px 0; | ||
225 | } | ||
226 | </style> | ||
227 | |||
228 | <script> | ||
229 | // Console-polyfill. MIT license. | ||
230 | // https://github.com/paulmillr/console-polyfill | ||
231 | // Make it safe to do console.log() always. | ||
232 | (function (global) { | ||
233 | 'use strict'; | ||
234 | global.console = global.console || {}; | ||
235 | var con = global.console; | ||
236 | var prop, method; | ||
237 | var empty = {}; | ||
238 | var dummy = function () { | ||
239 | }; | ||
240 | var properties = 'memory'.split(','); | ||
241 | var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' + | ||
242 | 'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + | ||
243 | 'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(','); | ||
244 | while (prop = properties.pop()) con[prop] = con[prop] || empty; | ||
245 | while (method = methods.pop()) con[method] = con[method] || dummy; | ||
246 | })(typeof window === 'undefined' ? this : window); | ||
247 | // Using `this` for web workers while maintaining compatibility with browser | ||
248 | // targeted script loaders such as Browserify or Webpack where the only way to | ||
249 | // get to the global object is via `window`. | ||
250 | </script> | ||
251 | <!--[if lt IE 9]> | ||
252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> | ||
253 | <![endif]--> | ||
254 | <script src="https://as.alipayobjects.com/g/component/??modernizr/2.8.3/modernizr.js,fastclick/1.0.6/fastclick.js"></script> | ||
255 | <script> | ||
256 | if(!window.Promise) { | ||
257 | document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>'); | ||
258 | } | ||
259 | </script> | ||
260 | <link rel="stylesheet" href="common.css" /> | ||
261 | </head> | ||
262 | |||
263 | <body> | ||
264 | <div class="container"> | ||
265 | <div class="header"> | ||
266 | <h1>rc-time-picker@2.2.0</h1> | ||
267 | |||
268 | <p>React TimePicker</p> | ||
269 | </div> | ||
270 | <div class="example" id="__react-content"></div> | ||
271 | |||
272 | <div class="highlight"><pre><code language="js"><span class="hljs-keyword">import</span> <span class="hljs-string">'rc-time-picker/assets/index.css'</span>; | ||
273 | <span class="hljs-keyword">import</span> React <span class="hljs-keyword">from</span> <span class="hljs-string">'react'</span>; | ||
274 | <span class="hljs-keyword">import</span> ReactDom <span class="hljs-keyword">from</span> <span class="hljs-string">'react-dom'</span>; | ||
275 | <span class="hljs-keyword">import</span> moment <span class="hljs-keyword">from</span> <span class="hljs-string">'moment'</span>; | ||
276 | <span class="hljs-keyword">import</span> TimePicker <span class="hljs-keyword">from</span> <span class="hljs-string">'rc-time-picker'</span>; | ||
277 | |||
278 | <span class="hljs-keyword">const</span> App = React.createClass({ | ||
279 | render() { | ||
280 | <span class="hljs-keyword">return</span> ( | ||
281 | <span class="xml"><span class="hljs-tag"><<span class="hljs-title">div</span>></span> | ||
282 | <span class="hljs-tag"><<span class="hljs-title">TimePicker</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{moment()}</span> <span class="hljs-attribute">showHour</span>=<span class="hljs-value">{false}</span> /></span> | ||
283 | <span class="hljs-tag"><<span class="hljs-title">TimePicker</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{moment()}</span> <span class="hljs-attribute">showMinute</span>=<span class="hljs-value">{false}</span> /></span> | ||
284 | <span class="hljs-tag"><<span class="hljs-title">TimePicker</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{moment()}</span> <span class="hljs-attribute">showSecond</span>=<span class="hljs-value">{false}</span> /></span> | ||
285 | |||
286 | <span class="hljs-tag"><<span class="hljs-title">TimePicker</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{moment()}</span> <span class="hljs-attribute">showMinute</span>=<span class="hljs-value">{false}</span> <span class="hljs-attribute">showSecond</span>=<span class="hljs-value">{false}</span> /></span> | ||
287 | <span class="hljs-tag"><<span class="hljs-title">TimePicker</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{moment()}</span> <span class="hljs-attribute">showHour</span>=<span class="hljs-value">{false}</span> <span class="hljs-attribute">showSecond</span>=<span class="hljs-value">{false}</span>/></span> | ||
288 | <span class="hljs-tag"><<span class="hljs-title">TimePicker</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{moment()}</span> <span class="hljs-attribute">showHour</span>=<span class="hljs-value">{false}</span> <span class="hljs-attribute">showMinute</span>=<span class="hljs-value">{false}</span> /></span> | ||
289 | <span class="hljs-tag"></<span class="hljs-title">div</span>></span> | ||
290 | )</span>; | ||
291 | }, | ||
292 | }); | ||
293 | |||
294 | ReactDom.render( | ||
295 | <span class="xml"><span class="hljs-tag"><<span class="hljs-title">App</span> /></span>, | ||
296 | document.getElementById('__react-content') | ||
297 | ); | ||
298 | </span></code></pre></div> | ||
299 | </div> | ||
300 | <a href="http://github.com/react-component/time-picker"> | ||
301 | <img style="position: absolute; top: 0; right: 0; border: 0;" | ||
302 | src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" | ||
303 | alt="Fork me on GitHub" | ||
304 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | ||
305 | </a> | ||
306 | <script>FastClick.attach(document.body);</script> | ||
307 | <script src="common.js?nowrap"></script> | ||
308 | <script src="format.js?nowrap"></script> | ||
309 | </body> | ||
310 | |||
311 | </html> | ||
diff --git a/examples/format.js b/examples/format.js new file mode 100644 index 0000000..d77796d --- /dev/null +++ b/examples/format.js | |||
@@ -0,0 +1,57 @@ | |||
1 | webpackJsonp([1],{ | ||
2 | |||
3 | /***/ 0: | ||
4 | /***/ function(module, exports, __webpack_require__) { | ||
5 | |||
6 | module.exports = __webpack_require__(260); | ||
7 | |||
8 | |||
9 | /***/ }, | ||
10 | |||
11 | /***/ 260: | ||
12 | /***/ function(module, exports, __webpack_require__) { | ||
13 | |||
14 | 'use strict'; | ||
15 | |||
16 | __webpack_require__(2); | ||
17 | |||
18 | var _react = __webpack_require__(3); | ||
19 | |||
20 | var _react2 = _interopRequireDefault(_react); | ||
21 | |||
22 | var _reactDom = __webpack_require__(36); | ||
23 | |||
24 | var _reactDom2 = _interopRequireDefault(_reactDom); | ||
25 | |||
26 | var _moment = __webpack_require__(174); | ||
27 | |||
28 | var _moment2 = _interopRequireDefault(_moment); | ||
29 | |||
30 | var _rcTimePicker = __webpack_require__(175); | ||
31 | |||
32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); | ||
33 | |||
34 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
35 | |||
36 | var App = _react2.default.createClass({ | ||
37 | displayName: 'App', | ||
38 | render: function render() { | ||
39 | return _react2.default.createElement( | ||
40 | 'div', | ||
41 | null, | ||
42 | _react2.default.createElement(_rcTimePicker2.default, { defaultValue: (0, _moment2.default)(), showHour: false }), | ||
43 | _react2.default.createElement(_rcTimePicker2.default, { defaultValue: (0, _moment2.default)(), showMinute: false }), | ||
44 | _react2.default.createElement(_rcTimePicker2.default, { defaultValue: (0, _moment2.default)(), showSecond: false }), | ||
45 | _react2.default.createElement(_rcTimePicker2.default, { defaultValue: (0, _moment2.default)(), showMinute: false, showSecond: false }), | ||
46 | _react2.default.createElement(_rcTimePicker2.default, { defaultValue: (0, _moment2.default)(), showHour: false, showSecond: false }), | ||
47 | _react2.default.createElement(_rcTimePicker2.default, { defaultValue: (0, _moment2.default)(), showHour: false, showMinute: false }) | ||
48 | ); | ||
49 | } | ||
50 | }); | ||
51 | |||
52 | _reactDom2.default.render(_react2.default.createElement(App, null), document.getElementById('__react-content')); | ||
53 | |||
54 | /***/ } | ||
55 | |||
56 | }); | ||
57 | //# sourceMappingURL=format.js.map \ No newline at end of file | ||
diff --git a/examples/format.js.map b/examples/format.js.map new file mode 100644 index 0000000..133ad2f --- /dev/null +++ b/examples/format.js.map | |||
@@ -0,0 +1 @@ | |||
{"version":3,"sources":["webpack:///./examples/format.js"],"names":["App","createClass","render","document","getElementById"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,KAAMA,MAAM,gBAAMC,WAAN,CAAkB;AAAA;AAC5BC,SAD4B,oBACnB;AACP,YACE;AAAA;AAAA;AACE,+DAAY,cAAc,uBAA1B,EAAoC,UAAU,KAA9C,GADF;AAEE,+DAAY,cAAc,uBAA1B,EAAoC,YAAY,KAAhD,GAFF;AAGE,+DAAY,cAAc,uBAA1B,EAAoC,YAAY,KAAhD,GAHF;AAKE,+DAAY,cAAc,uBAA1B,EAAoC,YAAY,KAAhD,EAAuD,YAAY,KAAnE,GALF;AAME,+DAAY,cAAc,uBAA1B,EAAoC,UAAU,KAA9C,EAAqD,YAAY,KAAjE,GANF;AAOE,+DAAY,cAAc,uBAA1B,EAAoC,UAAU,KAA9C,EAAqD,YAAY,KAAjE;AAPF,MADF;AAWD;AAb2B,EAAlB,CAAZ;;AAgBA,oBAASA,MAAT,CACE,8BAAC,GAAD,OADF,EAEEC,SAASC,cAAT,CAAwB,iBAAxB,CAFF,E","file":"format.js","sourcesContent":["import 'rc-time-picker/assets/index.less';\nimport React from 'react';\nimport ReactDom from 'react-dom';\nimport moment from 'moment';\nimport TimePicker from 'rc-time-picker';\n\nconst App = React.createClass({\n render() {\n return (\n <div>\n <TimePicker defaultValue={moment()} showHour={false} />\n <TimePicker defaultValue={moment()} showMinute={false} />\n <TimePicker defaultValue={moment()} showSecond={false} />\n\n <TimePicker defaultValue={moment()} showMinute={false} showSecond={false} />\n <TimePicker defaultValue={moment()} showHour={false} showSecond={false}/>\n <TimePicker defaultValue={moment()} showHour={false} showMinute={false} />\n </div>\n );\n },\n});\n\nReactDom.render(\n <App />,\n document.getElementById('__react-content')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./examples/format.js"],"sourceRoot":""} \ No newline at end of file | |||
diff --git a/examples/hidden.html b/examples/hidden.html index edd20f1..81286a0 100644 --- a/examples/hidden.html +++ b/examples/hidden.html | |||
@@ -2,7 +2,7 @@ | |||
2 | <html> | 2 | <html> |
3 | 3 | ||
4 | <head> | 4 | <head> |
5 | <title>hidden.js - example - rc-time-picker@2.1.0</title> | 5 | <title>hidden.js - example - rc-time-picker@2.2.0</title> |
6 | <meta name="viewport" | 6 | <meta name="viewport" |
7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> | 7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> |
8 | <meta charset="utf-8"/> | 8 | <meta charset="utf-8"/> |
@@ -251,14 +251,19 @@ Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-lic | |||
251 | <!--[if lt IE 9]> | 251 | <!--[if lt IE 9]> |
252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> | 252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> |
253 | <![endif]--> | 253 | <![endif]--> |
254 | 254 | <script src="https://as.alipayobjects.com/g/component/??modernizr/2.8.3/modernizr.js,fastclick/1.0.6/fastclick.js"></script> | |
255 | <script> | ||
256 | if(!window.Promise) { | ||
257 | document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>'); | ||
258 | } | ||
259 | </script> | ||
255 | <link rel="stylesheet" href="common.css" /> | 260 | <link rel="stylesheet" href="common.css" /> |
256 | </head> | 261 | </head> |
257 | 262 | ||
258 | <body> | 263 | <body> |
259 | <div class="container"> | 264 | <div class="container"> |
260 | <div class="header"> | 265 | <div class="header"> |
261 | <h1>rc-time-picker@2.1.0</h1> | 266 | <h1>rc-time-picker@2.2.0</h1> |
262 | 267 | ||
263 | <p>React TimePicker</p> | 268 | <p>React TimePicker</p> |
264 | </div> | 269 | </div> |
@@ -304,7 +309,7 @@ ReactDom.render( | |||
304 | alt="Fork me on GitHub" | 309 | alt="Fork me on GitHub" |
305 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | 310 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> |
306 | </a> | 311 | </a> |
307 | 312 | <script>FastClick.attach(document.body);</script> | |
308 | <script src="common.js?nowrap"></script> | 313 | <script src="common.js?nowrap"></script> |
309 | <script src="hidden.js?nowrap"></script> | 314 | <script src="hidden.js?nowrap"></script> |
310 | </body> | 315 | </body> |
diff --git a/examples/hidden.js b/examples/hidden.js index cab464f..1fb4e20 100644 --- a/examples/hidden.js +++ b/examples/hidden.js | |||
@@ -1,14 +1,14 @@ | |||
1 | webpackJsonp([1],{ | 1 | webpackJsonp([2],{ |
2 | 2 | ||
3 | /***/ 0: | 3 | /***/ 0: |
4 | /***/ function(module, exports, __webpack_require__) { | 4 | /***/ function(module, exports, __webpack_require__) { |
5 | 5 | ||
6 | module.exports = __webpack_require__(238); | 6 | module.exports = __webpack_require__(261); |
7 | 7 | ||
8 | 8 | ||
9 | /***/ }, | 9 | /***/ }, |
10 | 10 | ||
11 | /***/ 238: | 11 | /***/ 261: |
12 | /***/ function(module, exports, __webpack_require__) { | 12 | /***/ function(module, exports, __webpack_require__) { |
13 | 13 | ||
14 | 'use strict'; | 14 | 'use strict'; |
@@ -19,15 +19,15 @@ webpackJsonp([1],{ | |||
19 | 19 | ||
20 | var _react2 = _interopRequireDefault(_react); | 20 | var _react2 = _interopRequireDefault(_react); |
21 | 21 | ||
22 | var _reactDom = __webpack_require__(37); | 22 | var _reactDom = __webpack_require__(36); |
23 | 23 | ||
24 | var _reactDom2 = _interopRequireDefault(_reactDom); | 24 | var _reactDom2 = _interopRequireDefault(_reactDom); |
25 | 25 | ||
26 | var _moment = __webpack_require__(177); | 26 | var _moment = __webpack_require__(174); |
27 | 27 | ||
28 | var _moment2 = _interopRequireDefault(_moment); | 28 | var _moment2 = _interopRequireDefault(_moment); |
29 | 29 | ||
30 | var _rcTimePicker = __webpack_require__(178); | 30 | var _rcTimePicker = __webpack_require__(175); |
31 | 31 | ||
32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); | 32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); |
33 | 33 | ||
diff --git a/examples/hidden.js.map b/examples/hidden.js.map index 6e990a2..bb40719 100644 --- a/examples/hidden.js.map +++ b/examples/hidden.js.map | |||
@@ -1 +1 @@ | |||
{"version":3,"sources":["webpack:///./examples/hidden.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;AAEA,KAAM,aAAa,IAAnB,C,CAXA;;AAYA,KAAM,MAAM,aAAa,UAAb,GAA0B,OAAtC;;AAEA,UAAS,QAAT,CAAkB,KAAlB,EAAyB;AACvB,WAAQ,GAAR,CAAY,SAAS,MAAM,MAAN,CAAa,GAAb,CAArB;AACD;;AAED,oBAAS,MAAT,CACE;AACE,WAAQ,GADV;AAEE,eAAY;AACZ;AAHF,KAIE,kBAAkB,uBAJpB;AAKE,cAAU,KALZ;AAME,aAAU,QANZ;AAOE,kBAAe;AAAA,YAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,EAA5B,EAAgC,EAAhC,CAAN;AAAA,IAPjB;AAQE,oBAAiB;AAAA,YAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,CAAN;AAAA,IARnB;AASE;AATF,GADF,EAYE,SAAS,cAAT,CAAwB,iBAAxB,CAZF,E","file":"hidden.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport moment from 'moment';\n\nimport TimePicker from 'rc-time-picker';\n\nconst showSecond = true;\nconst str = showSecond ? 'HH:mm:ss' : 'HH:mm';\n\nfunction onChange(value) {\n console.log(value && value.format(str));\n}\n\nReactDom.render(\n <TimePicker\n format={str}\n showSecond={showSecond}\n // use to control utfOffset, locale, default open value\n defaultOpenValue={moment()}\n className=\"xxx\"\n onChange={onChange}\n disabledHours={() => [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23]}\n disabledMinutes={() => [0, 2, 4, 6, 8]}\n hideDisabledOptions\n />,\n document.getElementById('__react-content')\n);\n\n\n\n/** WEBPACK FOOTER **\n ** ./examples/hidden.js\n **/"],"sourceRoot":""} \ No newline at end of file | {"version":3,"sources":["webpack:///./examples/hidden.js"],"names":["showSecond","str","onChange","value","console","log","format","render","document","getElementById"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;AAEA,KAAMA,aAAa,IAAnB,C,CAXA;;AAYA,KAAMC,MAAMD,aAAa,UAAb,GAA0B,OAAtC;;AAEA,UAASE,QAAT,CAAkBC,KAAlB,EAAyB;AACvBC,WAAQC,GAAR,CAAYF,SAASA,MAAMG,MAAN,CAAaL,GAAb,CAArB;AACD;;AAED,oBAASM,MAAT,CACE;AACE,WAAQN,GADV;AAEE,eAAYD;AACZ;AAHF,KAIE,kBAAkB,uBAJpB;AAKE,cAAU,KALZ;AAME,aAAUE,QANZ;AAOE,kBAAe;AAAA,YAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,EAA5B,EAAgC,EAAhC,CAAN;AAAA,IAPjB;AAQE,oBAAiB;AAAA,YAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,CAAN;AAAA,IARnB;AASE;AATF,GADF,EAYEM,SAASC,cAAT,CAAwB,iBAAxB,CAZF,E","file":"hidden.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport moment from 'moment';\n\nimport TimePicker from 'rc-time-picker';\n\nconst showSecond = true;\nconst str = showSecond ? 'HH:mm:ss' : 'HH:mm';\n\nfunction onChange(value) {\n console.log(value && value.format(str));\n}\n\nReactDom.render(\n <TimePicker\n format={str}\n showSecond={showSecond}\n // use to control utfOffset, locale, default open value\n defaultOpenValue={moment()}\n className=\"xxx\"\n onChange={onChange}\n disabledHours={() => [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23]}\n disabledMinutes={() => [0, 2, 4, 6, 8]}\n hideDisabledOptions\n />,\n document.getElementById('__react-content')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./examples/hidden.js"],"sourceRoot":""} \ No newline at end of file | ||
diff --git a/examples/pick-time.html b/examples/pick-time.html index f8a8ea7..5c7e047 100644 --- a/examples/pick-time.html +++ b/examples/pick-time.html | |||
@@ -2,7 +2,7 @@ | |||
2 | <html> | 2 | <html> |
3 | 3 | ||
4 | <head> | 4 | <head> |
5 | <title>pick-time.js - example - rc-time-picker@2.1.0</title> | 5 | <title>pick-time.js - example - rc-time-picker@2.2.0</title> |
6 | <meta name="viewport" | 6 | <meta name="viewport" |
7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> | 7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> |
8 | <meta charset="utf-8"/> | 8 | <meta charset="utf-8"/> |
@@ -251,14 +251,19 @@ Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-lic | |||
251 | <!--[if lt IE 9]> | 251 | <!--[if lt IE 9]> |
252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> | 252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> |
253 | <![endif]--> | 253 | <![endif]--> |
254 | 254 | <script src="https://as.alipayobjects.com/g/component/??modernizr/2.8.3/modernizr.js,fastclick/1.0.6/fastclick.js"></script> | |
255 | <script> | ||
256 | if(!window.Promise) { | ||
257 | document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>'); | ||
258 | } | ||
259 | </script> | ||
255 | <link rel="stylesheet" href="common.css" /> | 260 | <link rel="stylesheet" href="common.css" /> |
256 | </head> | 261 | </head> |
257 | 262 | ||
258 | <body> | 263 | <body> |
259 | <div class="container"> | 264 | <div class="container"> |
260 | <div class="header"> | 265 | <div class="header"> |
261 | <h1>rc-time-picker@2.1.0</h1> | 266 | <h1>rc-time-picker@2.2.0</h1> |
262 | 267 | ||
263 | <p>React TimePicker</p> | 268 | <p>React TimePicker</p> |
264 | </div> | 269 | </div> |
@@ -301,7 +306,7 @@ ReactDom.render( | |||
301 | alt="Fork me on GitHub" | 306 | alt="Fork me on GitHub" |
302 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | 307 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> |
303 | </a> | 308 | </a> |
304 | 309 | <script>FastClick.attach(document.body);</script> | |
305 | <script src="common.js?nowrap"></script> | 310 | <script src="common.js?nowrap"></script> |
306 | <script src="pick-time.js?nowrap"></script> | 311 | <script src="pick-time.js?nowrap"></script> |
307 | </body> | 312 | </body> |
diff --git a/examples/pick-time.js b/examples/pick-time.js index 57a653b..18e1fe9 100644 --- a/examples/pick-time.js +++ b/examples/pick-time.js | |||
@@ -1,14 +1,14 @@ | |||
1 | webpackJsonp([2],{ | 1 | webpackJsonp([3],{ |
2 | 2 | ||
3 | /***/ 0: | 3 | /***/ 0: |
4 | /***/ function(module, exports, __webpack_require__) { | 4 | /***/ function(module, exports, __webpack_require__) { |
5 | 5 | ||
6 | module.exports = __webpack_require__(239); | 6 | module.exports = __webpack_require__(262); |
7 | 7 | ||
8 | 8 | ||
9 | /***/ }, | 9 | /***/ }, |
10 | 10 | ||
11 | /***/ 239: | 11 | /***/ 262: |
12 | /***/ function(module, exports, __webpack_require__) { | 12 | /***/ function(module, exports, __webpack_require__) { |
13 | 13 | ||
14 | 'use strict'; | 14 | 'use strict'; |
@@ -19,15 +19,15 @@ webpackJsonp([2],{ | |||
19 | 19 | ||
20 | var _react2 = _interopRequireDefault(_react); | 20 | var _react2 = _interopRequireDefault(_react); |
21 | 21 | ||
22 | var _reactDom = __webpack_require__(37); | 22 | var _reactDom = __webpack_require__(36); |
23 | 23 | ||
24 | var _reactDom2 = _interopRequireDefault(_reactDom); | 24 | var _reactDom2 = _interopRequireDefault(_reactDom); |
25 | 25 | ||
26 | var _moment = __webpack_require__(177); | 26 | var _moment = __webpack_require__(174); |
27 | 27 | ||
28 | var _moment2 = _interopRequireDefault(_moment); | 28 | var _moment2 = _interopRequireDefault(_moment); |
29 | 29 | ||
30 | var _rcTimePicker = __webpack_require__(178); | 30 | var _rcTimePicker = __webpack_require__(175); |
31 | 31 | ||
32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); | 32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); |
33 | 33 | ||
diff --git a/examples/pick-time.js.map b/examples/pick-time.js.map index 1988632..15db4dd 100644 --- a/examples/pick-time.js.map +++ b/examples/pick-time.js.map | |||
@@ -1 +1 @@ | |||
{"version":3,"sources":["webpack:///./examples/pick-time.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;AAEA,KAAM,aAAa,IAAnB,C,CAXA;;AAYA,KAAM,MAAM,aAAa,UAAb,GAA0B,OAAtC;;AAGA,UAAS,QAAT,CAAkB,KAAlB,EAAyB;AACvB,WAAQ,GAAR,CAAY,SAAS,MAAM,MAAN,CAAa,GAAb,CAArB;AACD;;AAED,oBAAS,MAAT,CACE;AACE,UAAO,EAAE,OAAO,GAAT,EADT;AAEE,eAAY,UAFd;AAGE,iBAAc,uBAHhB;AAIE,cAAU,KAJZ;AAKE,aAAU;AALZ,GADF,EAQE,SAAS,cAAT,CAAwB,iBAAxB,CARF,E","file":"pick-time.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport moment from 'moment';\n\nimport TimePicker from 'rc-time-picker';\n\nconst showSecond = true;\nconst str = showSecond ? 'HH:mm:ss' : 'HH:mm';\n\n\nfunction onChange(value) {\n console.log(value && value.format(str));\n}\n\nReactDom.render(\n <TimePicker\n style={{ width: 100 }}\n showSecond={showSecond}\n defaultValue={moment()}\n className=\"xxx\"\n onChange={onChange}\n />,\n document.getElementById('__react-content')\n);\n\n\n\n/** WEBPACK FOOTER **\n ** ./examples/pick-time.js\n **/"],"sourceRoot":""} \ No newline at end of file | {"version":3,"sources":["webpack:///./examples/pick-time.js"],"names":["showSecond","str","onChange","value","console","log","format","render","width","document","getElementById"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;AAEA,KAAMA,aAAa,IAAnB,C,CAXA;;AAYA,KAAMC,MAAMD,aAAa,UAAb,GAA0B,OAAtC;;AAGA,UAASE,QAAT,CAAkBC,KAAlB,EAAyB;AACvBC,WAAQC,GAAR,CAAYF,SAASA,MAAMG,MAAN,CAAaL,GAAb,CAArB;AACD;;AAED,oBAASM,MAAT,CACE;AACE,UAAO,EAAEC,OAAO,GAAT,EADT;AAEE,eAAYR,UAFd;AAGE,iBAAc,uBAHhB;AAIE,cAAU,KAJZ;AAKE,aAAUE;AALZ,GADF,EAQEO,SAASC,cAAT,CAAwB,iBAAxB,CARF,E","file":"pick-time.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport moment from 'moment';\n\nimport TimePicker from 'rc-time-picker';\n\nconst showSecond = true;\nconst str = showSecond ? 'HH:mm:ss' : 'HH:mm';\n\n\nfunction onChange(value) {\n console.log(value && value.format(str));\n}\n\nReactDom.render(\n <TimePicker\n style={{ width: 100 }}\n showSecond={showSecond}\n defaultValue={moment()}\n className=\"xxx\"\n onChange={onChange}\n />,\n document.getElementById('__react-content')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./examples/pick-time.js"],"sourceRoot":""} \ No newline at end of file | ||
diff --git a/examples/value-and-defaultValue.html b/examples/value-and-defaultValue.html index 912a53a..3f2c9bc 100644 --- a/examples/value-and-defaultValue.html +++ b/examples/value-and-defaultValue.html | |||
@@ -2,7 +2,7 @@ | |||
2 | <html> | 2 | <html> |
3 | 3 | ||
4 | <head> | 4 | <head> |
5 | <title>value-and-defaultValue.js - example - rc-time-picker@2.1.0</title> | 5 | <title>value-and-defaultValue.js - example - rc-time-picker@2.2.0</title> |
6 | <meta name="viewport" | 6 | <meta name="viewport" |
7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> | 7 | content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> |
8 | <meta charset="utf-8"/> | 8 | <meta charset="utf-8"/> |
@@ -251,14 +251,19 @@ Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-lic | |||
251 | <!--[if lt IE 9]> | 251 | <!--[if lt IE 9]> |
252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> | 252 | <script src="https://a.alipayobjects.com/??es5-shim/4.0.5/es5-shim.js,es5-shim/4.0.5/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js"></script> |
253 | <![endif]--> | 253 | <![endif]--> |
254 | 254 | <script src="https://as.alipayobjects.com/g/component/??modernizr/2.8.3/modernizr.js,fastclick/1.0.6/fastclick.js"></script> | |
255 | <script> | ||
256 | if(!window.Promise) { | ||
257 | document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>'); | ||
258 | } | ||
259 | </script> | ||
255 | <link rel="stylesheet" href="common.css" /> | 260 | <link rel="stylesheet" href="common.css" /> |
256 | </head> | 261 | </head> |
257 | 262 | ||
258 | <body> | 263 | <body> |
259 | <div class="container"> | 264 | <div class="container"> |
260 | <div class="header"> | 265 | <div class="header"> |
261 | <h1>rc-time-picker@2.1.0</h1> | 266 | <h1>rc-time-picker@2.2.0</h1> |
262 | 267 | ||
263 | <p>React TimePicker</p> | 268 | <p>React TimePicker</p> |
264 | </div> | 269 | </div> |
@@ -317,7 +322,7 @@ ReactDom.render( | |||
317 | alt="Fork me on GitHub" | 322 | alt="Fork me on GitHub" |
318 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | 323 | data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> |
319 | </a> | 324 | </a> |
320 | 325 | <script>FastClick.attach(document.body);</script> | |
321 | <script src="common.js?nowrap"></script> | 326 | <script src="common.js?nowrap"></script> |
322 | <script src="value-and-defaultValue.js?nowrap"></script> | 327 | <script src="value-and-defaultValue.js?nowrap"></script> |
323 | </body> | 328 | </body> |
diff --git a/examples/value-and-defaultValue.js b/examples/value-and-defaultValue.js index 9d092f3..252ba82 100644 --- a/examples/value-and-defaultValue.js +++ b/examples/value-and-defaultValue.js | |||
@@ -1,14 +1,14 @@ | |||
1 | webpackJsonp([3],{ | 1 | webpackJsonp([4],{ |
2 | 2 | ||
3 | /***/ 0: | 3 | /***/ 0: |
4 | /***/ function(module, exports, __webpack_require__) { | 4 | /***/ function(module, exports, __webpack_require__) { |
5 | 5 | ||
6 | module.exports = __webpack_require__(240); | 6 | module.exports = __webpack_require__(263); |
7 | 7 | ||
8 | 8 | ||
9 | /***/ }, | 9 | /***/ }, |
10 | 10 | ||
11 | /***/ 240: | 11 | /***/ 263: |
12 | /***/ function(module, exports, __webpack_require__) { | 12 | /***/ function(module, exports, __webpack_require__) { |
13 | 13 | ||
14 | 'use strict'; | 14 | 'use strict'; |
@@ -19,15 +19,15 @@ webpackJsonp([3],{ | |||
19 | 19 | ||
20 | var _react2 = _interopRequireDefault(_react); | 20 | var _react2 = _interopRequireDefault(_react); |
21 | 21 | ||
22 | var _reactDom = __webpack_require__(37); | 22 | var _reactDom = __webpack_require__(36); |
23 | 23 | ||
24 | var _reactDom2 = _interopRequireDefault(_reactDom); | 24 | var _reactDom2 = _interopRequireDefault(_reactDom); |
25 | 25 | ||
26 | var _moment = __webpack_require__(177); | 26 | var _moment = __webpack_require__(174); |
27 | 27 | ||
28 | var _moment2 = _interopRequireDefault(_moment); | 28 | var _moment2 = _interopRequireDefault(_moment); |
29 | 29 | ||
30 | var _rcTimePicker = __webpack_require__(178); | 30 | var _rcTimePicker = __webpack_require__(175); |
31 | 31 | ||
32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); | 32 | var _rcTimePicker2 = _interopRequireDefault(_rcTimePicker); |
33 | 33 | ||
diff --git a/examples/value-and-defaultValue.js.map b/examples/value-and-defaultValue.js.map index 51cb262..4791ea2 100644 --- a/examples/value-and-defaultValue.js.map +++ b/examples/value-and-defaultValue.js.map | |||
@@ -1 +1 @@ | |||
{"version":3,"sources":["webpack:///./examples/value-and-defaultValue.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,KAAM,MAAM,gBAAM,WAAN,CAAkB;AAAA;AAC5B,kBAD4B,6BACV;AAChB,YAAO;AACL,cAAO;AADF,MAAP;AAGD,IAL2B;AAM5B,oBAN4B,6BAMV,KANU,EAMH;AACvB,aAAQ,GAAR,CAAY,SAAS,MAAM,MAAN,CAAa,UAAb,CAArB;AACA,UAAK,QAAL,CAAc,EAAE,YAAF,EAAd;AACD,IAT2B;AAU5B,QAV4B,mBAUpB;AACN,UAAK,QAAL,CAAc;AACZ,cAAO;AADK,MAAd;AAGD,IAd2B;AAe5B,SAf4B,oBAenB;AACP,YACE;AAAA;AAAA;AACE;AACE,uBAAc,KAAK,KAAL,CAAW,KAD3B;AAEE,mBAAU,KAAK;AAFjB,SADF;AAKE;AACE,gBAAO,KAAK,KAAL,CAAW,KADpB;AAEE,mBAAU,KAAK;AAFjB,SALF;AASE;AAAA;AAAA,WAAQ,SAAS,KAAK,KAAtB;AAAA;AAAA;AATF,MADF;AAaD;AA7B2B,EAAlB,CAAZ,C,CATA;;AAyCA,oBAAS,MAAT,CACE,8BAAC,GAAD,OADF,EAEE,SAAS,cAAT,CAAwB,iBAAxB,CAFF,E","file":"value-and-defaultValue.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\nimport moment from 'moment';\nimport TimePicker from 'rc-time-picker';\n\nconst App = React.createClass({\n getInitialState() {\n return {\n value: moment(),\n };\n },\n handleValueChange(value) {\n console.log(value && value.format('HH:mm:ss'));\n this.setState({ value });\n },\n clear() {\n this.setState({\n value: undefined,\n });\n },\n render() {\n return (\n <div>\n <TimePicker\n defaultValue={this.state.value}\n onChange={this.handleValueChange}\n />\n <TimePicker\n value={this.state.value}\n onChange={this.handleValueChange}\n />\n <button onClick={this.clear}>clear</button>\n </div>\n );\n },\n});\n\nReactDom.render(\n <App />,\n document.getElementById('__react-content')\n);\n\n\n\n/** WEBPACK FOOTER **\n ** ./examples/value-and-defaultValue.js\n **/"],"sourceRoot":""} \ No newline at end of file | {"version":3,"sources":["webpack:///./examples/value-and-defaultValue.js"],"names":["App","createClass","getInitialState","value","handleValueChange","console","log","format","setState","clear","undefined","render","state","document","getElementById"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,KAAMA,MAAM,gBAAMC,WAAN,CAAkB;AAAA;AAC5BC,kBAD4B,6BACV;AAChB,YAAO;AACLC,cAAO;AADF,MAAP;AAGD,IAL2B;AAM5BC,oBAN4B,6BAMVD,KANU,EAMH;AACvBE,aAAQC,GAAR,CAAYH,SAASA,MAAMI,MAAN,CAAa,UAAb,CAArB;AACA,UAAKC,QAAL,CAAc,EAAEL,YAAF,EAAd;AACD,IAT2B;AAU5BM,QAV4B,mBAUpB;AACN,UAAKD,QAAL,CAAc;AACZL,cAAOO;AADK,MAAd;AAGD,IAd2B;AAe5BC,SAf4B,oBAenB;AACP,YACE;AAAA;AAAA;AACE;AACE,uBAAc,KAAKC,KAAL,CAAWT,KAD3B;AAEE,mBAAU,KAAKC;AAFjB,SADF;AAKE;AACE,gBAAO,KAAKQ,KAAL,CAAWT,KADpB;AAEE,mBAAU,KAAKC;AAFjB,SALF;AASE;AAAA;AAAA,WAAQ,SAAS,KAAKK,KAAtB;AAAA;AAAA;AATF,MADF;AAaD;AA7B2B,EAAlB,CAAZ,C,CATA;;AAyCA,oBAASE,MAAT,CACE,8BAAC,GAAD,OADF,EAEEE,SAASC,cAAT,CAAwB,iBAAxB,CAFF,E","file":"value-and-defaultValue.js","sourcesContent":["/* eslint no-console:0 */\n\nimport 'rc-time-picker/assets/index.less';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\nimport moment from 'moment';\nimport TimePicker from 'rc-time-picker';\n\nconst App = React.createClass({\n getInitialState() {\n return {\n value: moment(),\n };\n },\n handleValueChange(value) {\n console.log(value && value.format('HH:mm:ss'));\n this.setState({ value });\n },\n clear() {\n this.setState({\n value: undefined,\n });\n },\n render() {\n return (\n <div>\n <TimePicker\n defaultValue={this.state.value}\n onChange={this.handleValueChange}\n />\n <TimePicker\n value={this.state.value}\n onChange={this.handleValueChange}\n />\n <button onClick={this.clear}>clear</button>\n </div>\n );\n },\n});\n\nReactDom.render(\n <App />,\n document.getElementById('__react-content')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./examples/value-and-defaultValue.js"],"sourceRoot":""} \ No newline at end of file | ||