2096 lines
1.7 MiB
2096 lines
1.7 MiB
(function webpackUniversalModuleDefinition(root, factory) {
|
||
if(typeof exports === 'object' && typeof module === 'object')
|
||
module.exports = factory(require("react"), require("react-dom"));
|
||
else if(typeof define === 'function' && define.amd)
|
||
define(["react", "react-dom"], factory);
|
||
else if(typeof exports === 'object')
|
||
exports["FormControls"] = factory(require("react"), require("react-dom"));
|
||
else
|
||
root["FormControls"] = factory(root["React"], root["ReactDOM"]);
|
||
})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_240__) {
|
||
return /******/ (function(modules) { // webpackBootstrap
|
||
/******/ // The module cache
|
||
/******/ var installedModules = {};
|
||
|
||
/******/ // The require function
|
||
/******/ function __webpack_require__(moduleId) {
|
||
|
||
/******/ // Check if module is in cache
|
||
/******/ if(installedModules[moduleId])
|
||
/******/ return installedModules[moduleId].exports;
|
||
|
||
/******/ // Create a new module (and put it into the cache)
|
||
/******/ var module = installedModules[moduleId] = {
|
||
/******/ exports: {},
|
||
/******/ id: moduleId,
|
||
/******/ loaded: false
|
||
/******/ };
|
||
|
||
/******/ // Execute the module function
|
||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||
|
||
/******/ // Flag the module as loaded
|
||
/******/ module.loaded = true;
|
||
|
||
/******/ // Return the exports of the module
|
||
/******/ return module.exports;
|
||
/******/ }
|
||
|
||
|
||
/******/ // expose the modules object (__webpack_modules__)
|
||
/******/ __webpack_require__.m = modules;
|
||
|
||
/******/ // expose the module cache
|
||
/******/ __webpack_require__.c = installedModules;
|
||
|
||
/******/ // __webpack_public_path__
|
||
/******/ __webpack_require__.p = "";
|
||
|
||
/******/ // Load entry module and return exports
|
||
/******/ return __webpack_require__(0);
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ([
|
||
/* 0 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("module.exports = __webpack_require__(1);\n\n\n//////////////////\n// WEBPACK FOOTER\n// multi bundle\n// module id = 0\n// module chunks = 0\n//# sourceURL=webpack:///multi_bundle?");
|
||
|
||
/***/ }),
|
||
/* 1 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TranslationKeyGenerator = exports.CodedValueMapper = exports.BooleanValueMapper = exports.ComponentStore = exports.DescriptorParser = exports.IDGenerator = exports.ProviderDesigner = exports.LocationDesigner = exports.VideoDesigner = exports.ImageDesigner = exports.TableDesigner = exports.SectionDesigner = exports.DateTimeDesigner = exports.DateDesigner = exports.ObsGroupControlDesigner = exports.CodedControlDesigner = exports.RowDesigner = exports.Draggable = exports.BooleanControlDesigner = exports.ButtonDesigner = exports.RadioButtonDesigner = exports.CellDesigner = exports.GridDesigner = exports.ComplexControlDesigner = exports.NumericBoxDesigner = exports.TextBoxDesigner = exports.ObsControlDesigner = exports.LabelDesigner = exports.FreeTextAutoComplete = exports.Provider = exports.Location = exports.Video = exports.Image = exports.Table = exports.Section = exports.DateTime = exports.Date = exports.CodedControl = exports.Button = exports.RadioButton = exports.BooleanControl = exports.DropDown = exports.AutoComplete = exports.ObsGroupControl = exports.ComplexControl = exports.NumericBox = exports.TextBox = exports.Label = exports.ObsControl = exports.Container = undefined;\n\nvar _Container = __webpack_require__(2);\n\nObject.defineProperty(exports, 'Container', {\n enumerable: true,\n get: function get() {\n return _Container.Container;\n }\n});\n\nvar _ObsControl = __webpack_require__(221);\n\nObject.defineProperty(exports, 'ObsControl', {\n enumerable: true,\n get: function get() {\n return _ObsControl.ObsControl;\n }\n});\n\nvar _Label = __webpack_require__(222);\n\nObject.defineProperty(exports, 'Label', {\n enumerable: true,\n get: function get() {\n return _Label.Label;\n }\n});\n\nvar _TextBox = __webpack_require__(228);\n\nObject.defineProperty(exports, 'TextBox', {\n enumerable: true,\n get: function get() {\n return _TextBox.TextBox;\n }\n});\n\nvar _NumericBox = __webpack_require__(232);\n\nObject.defineProperty(exports, 'NumericBox', {\n enumerable: true,\n get: function get() {\n return _NumericBox.NumericBox;\n }\n});\n\nvar _ComplexControl = __webpack_require__(234);\n\nObject.defineProperty(exports, 'ComplexControl', {\n enumerable: true,\n get: function get() {\n return _ComplexControl.ComplexControl;\n }\n});\n\nvar _ObsGroupControl = __webpack_require__(235);\n\nObject.defineProperty(exports, 'ObsGroupControl', {\n enumerable: true,\n get: function get() {\n return _ObsGroupControl.ObsGroupControl;\n }\n});\n\nvar _AutoComplete = __webpack_require__(236);\n\nObject.defineProperty(exports, 'AutoComplete', {\n enumerable: true,\n get: function get() {\n return _AutoComplete.AutoComplete;\n }\n});\n\nvar _DropDown = __webpack_require__(256);\n\nObject.defineProperty(exports, 'DropDown', {\n enumerable: true,\n get: function get() {\n return _DropDown.DropDown;\n }\n});\n\nvar _BooleanControl = __webpack_require__(257);\n\nObject.defineProperty(exports, 'BooleanControl', {\n enumerable: true,\n get: function get() {\n return _BooleanControl.BooleanControl;\n }\n});\n\nvar _RadioButton = __webpack_require__(258);\n\nObject.defineProperty(exports, 'RadioButton', {\n enumerable: true,\n get: function get() {\n return _RadioButton.RadioButton;\n }\n});\n\nvar _Button = __webpack_require__(259);\n\nObject.defineProperty(exports, 'Button', {\n enumerable: true,\n get: function get() {\n return _Button.Button;\n }\n});\n\nvar _CodedControl = __webpack_require__(289);\n\nObject.defineProperty(exports, 'CodedControl', {\n enumerable: true,\n get: function get() {\n return _CodedControl.CodedControl;\n }\n});\n\nvar _Date = __webpack_require__(290);\n\nObject.defineProperty(exports, 'Date', {\n enumerable: true,\n get: function get() {\n return _Date.Date;\n }\n});\n\nvar _DateTime = __webpack_require__(291);\n\nObject.defineProperty(exports, 'DateTime', {\n enumerable: true,\n get: function get() {\n return _DateTime.DateTime;\n }\n});\n\nvar _Section = __webpack_require__(292);\n\nObject.defineProperty(exports, 'Section', {\n enumerable: true,\n get: function get() {\n return _Section.Section;\n }\n});\n\nvar _Table = __webpack_require__(293);\n\nObject.defineProperty(exports, 'Table', {\n enumerable: true,\n get: function get() {\n return _Table.Table;\n }\n});\n\nvar _Image = __webpack_require__(294);\n\nObject.defineProperty(exports, 'Image', {\n enumerable: true,\n get: function get() {\n return _Image.Image;\n }\n});\n\nvar _Video = __webpack_require__(296);\n\nObject.defineProperty(exports, 'Video', {\n enumerable: true,\n get: function get() {\n return _Video.Video;\n }\n});\n\nvar _Location = __webpack_require__(297);\n\nObject.defineProperty(exports, 'Location', {\n enumerable: true,\n get: function get() {\n return _Location.Location;\n }\n});\n\nvar _Provider = __webpack_require__(298);\n\nObject.defineProperty(exports, 'Provider', {\n enumerable: true,\n get: function get() {\n return _Provider.Provider;\n }\n});\n\nvar _FreeTextAutoComplete = __webpack_require__(299);\n\nObject.defineProperty(exports, 'FreeTextAutoComplete', {\n enumerable: true,\n get: function get() {\n return _FreeTextAutoComplete.FreeTextAutoComplete;\n }\n});\n\nvar _Label2 = __webpack_require__(300);\n\nObject.defineProperty(exports, 'LabelDesigner', {\n enumerable: true,\n get: function get() {\n return _Label2.LabelDesigner;\n }\n});\n\nvar _ObsControlDesigner = __webpack_require__(302);\n\nObject.defineProperty(exports, 'ObsControlDesigner', {\n enumerable: true,\n get: function get() {\n return _ObsControlDesigner.ObsControlDesigner;\n }\n});\n\nvar _TextBoxDesigner = __webpack_require__(306);\n\nObject.defineProperty(exports, 'TextBoxDesigner', {\n enumerable: true,\n get: function get() {\n return _TextBoxDesigner.TextBoxDesigner;\n }\n});\n\nvar _NumericBoxDesigner = __webpack_require__(233);\n\nObject.defineProperty(exports, 'NumericBoxDesigner', {\n enumerable: true,\n get: function get() {\n return _NumericBoxDesigner.NumericBoxDesigner;\n }\n});\n\nvar _ComplexControlDesigner = __webpack_require__(307);\n\nObject.defineProperty(exports, 'ComplexControlDesigner', {\n enumerable: true,\n get: function get() {\n return _ComplexControlDesigner.ComplexControlDesigner;\n }\n});\n\nvar _Grid = __webpack_require__(308);\n\nObject.defineProperty(exports, 'GridDesigner', {\n enumerable: true,\n get: function get() {\n return _Grid.GridDesigner;\n }\n});\n\nvar _Cell = __webpack_require__(310);\n\nObject.defineProperty(exports, 'CellDesigner', {\n enumerable: true,\n get: function get() {\n return _Cell.CellDesigner;\n }\n});\n\nvar _RadioButton2 = __webpack_require__(315);\n\nObject.defineProperty(exports, 'RadioButtonDesigner', {\n enumerable: true,\n get: function get() {\n return _RadioButton2.RadioButtonDesigner;\n }\n});\n\nvar _Button2 = __webpack_require__(316);\n\nObject.defineProperty(exports, 'ButtonDesigner', {\n enumerable: true,\n get: function get() {\n return _Button2.ButtonDesigner;\n }\n});\n\nvar _BooleanControl2 = __webpack_require__(317);\n\nObject.defineProperty(exports, 'BooleanControlDesigner', {\n enumerable: true,\n get: function get() {\n return _BooleanControl2.BooleanControlDesigner;\n }\n});\n\nvar _Draggable = __webpack_require__(318);\n\nObject.defineProperty(exports, 'Draggable', {\n enumerable: true,\n get: function get() {\n return _Draggable.Draggable;\n }\n});\n\nvar _Row = __webpack_require__(309);\n\nObject.defineProperty(exports, 'RowDesigner', {\n enumerable: true,\n get: function get() {\n return _Row.RowDesigner;\n }\n});\n\nvar _CodedControl2 = __webpack_require__(319);\n\nObject.defineProperty(exports, 'CodedControlDesigner', {\n enumerable: true,\n get: function get() {\n return _CodedControl2.CodedControlDesigner;\n }\n});\n\nvar _ObsGroupControlDesigner = __webpack_require__(321);\n\nObject.defineProperty(exports, 'ObsGroupControlDesigner', {\n enumerable: true,\n get: function get() {\n return _ObsGroupControlDesigner.ObsGroupControlDesigner;\n }\n});\n\nvar _Date2 = __webpack_require__(324);\n\nObject.defineProperty(exports, 'DateDesigner', {\n enumerable: true,\n get: function get() {\n return _Date2.DateDesigner;\n }\n});\n\nvar _DateTime2 = __webpack_require__(325);\n\nObject.defineProperty(exports, 'DateTimeDesigner', {\n enumerable: true,\n get: function get() {\n return _DateTime2.DateTimeDesigner;\n }\n});\n\nvar _Section2 = __webpack_require__(326);\n\nObject.defineProperty(exports, 'SectionDesigner', {\n enumerable: true,\n get: function get() {\n return _Section2.SectionDesigner;\n }\n});\n\nvar _TableDesigner = __webpack_require__(327);\n\nObject.defineProperty(exports, 'TableDesigner', {\n enumerable: true,\n get: function get() {\n return _TableDesigner.TableDesigner;\n }\n});\n\nvar _Image2 = __webpack_require__(328);\n\nObject.defineProperty(exports, 'ImageDesigner', {\n enumerable: true,\n get: function get() {\n return _Image2.ImageDesigner;\n }\n});\n\nvar _Video2 = __webpack_require__(329);\n\nObject.defineProperty(exports, 'VideoDesigner', {\n enumerable: true,\n get: function get() {\n return _Video2.VideoDesigner;\n }\n});\n\nvar _Location2 = __webpack_require__(330);\n\nObject.defineProperty(exports, 'LocationDesigner', {\n enumerable: true,\n get: function get() {\n return _Location2.LocationDesigner;\n }\n});\n\nvar _Provider2 = __webpack_require__(331);\n\nObject.defineProperty(exports, 'ProviderDesigner', {\n enumerable: true,\n get: function get() {\n return _Provider2.ProviderDesigner;\n }\n});\n\nvar _idGenerator = __webpack_require__(332);\n\nObject.defineProperty(exports, 'IDGenerator', {\n enumerable: true,\n get: function get() {\n return _idGenerator.IDGenerator;\n }\n});\n\nvar _descriptorParser = __webpack_require__(323);\n\nObject.defineProperty(exports, 'DescriptorParser', {\n enumerable: true,\n get: function get() {\n return _descriptorParser.DescriptorParser;\n }\n});\n\nvar _componentStore = __webpack_require__(168);\n\nObject.defineProperty(exports, 'ComponentStore', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_componentStore).default;\n }\n});\n\nvar _BooleanValueMapper = __webpack_require__(333);\n\nObject.defineProperty(exports, 'BooleanValueMapper', {\n enumerable: true,\n get: function get() {\n return _BooleanValueMapper.BooleanValueMapper;\n }\n});\n\nvar _CodedValueMapper = __webpack_require__(334);\n\nObject.defineProperty(exports, 'CodedValueMapper', {\n enumerable: true,\n get: function get() {\n return _CodedValueMapper.CodedValueMapper;\n }\n});\n\nvar _TranslationKeyService = __webpack_require__(301);\n\nObject.defineProperty(exports, 'TranslationKeyGenerator', {\n enumerable: true,\n get: function get() {\n return _TranslationKeyService.TranslationKeyGenerator;\n }\n});\n\n__webpack_require__(335);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/index.jsx\n// module id = 1\n// module chunks = 0\n//# sourceURL=webpack:///./src/index.jsx?");
|
||
|
||
/***/ }),
|
||
/* 2 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Container = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _controlsParser = __webpack_require__(11);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _ControlRecordTreeBuilder = __webpack_require__(171);\n\nvar _ControlRecordTreeBuilder2 = _interopRequireDefault(_ControlRecordTreeBuilder);\n\nvar _ControlRecordTreeMgr = __webpack_require__(191);\n\nvar _ControlRecordTreeMgr2 = _interopRequireDefault(_ControlRecordTreeMgr);\n\nvar _ScriptRunner = __webpack_require__(192);\n\nvar _ScriptRunner2 = _interopRequireDefault(_ScriptRunner);\n\nvar _AddMoreDecorator = __webpack_require__(195);\n\nvar _AddMoreDecorator2 = _interopRequireDefault(_AddMoreDecorator);\n\nvar _ObservationMapper = __webpack_require__(182);\n\nvar _ObservationMapper2 = _interopRequireDefault(_ObservationMapper);\n\nvar _Notification = __webpack_require__(197);\n\nvar _Notification2 = _interopRequireDefault(_Notification);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _reactIntl = __webpack_require__(198);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = exports.Container = function (_addMoreDecorator) {\n _inherits(Container, _addMoreDecorator);\n\n function Container(props) {\n _classCallCheck(this, Container);\n\n var _this = _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).call(this, props));\n\n _this.childControls = {};\n var _this$props = _this.props,\n observations = _this$props.observations,\n metadata = _this$props.metadata;\n\n var controlRecordTree = new _ControlRecordTreeBuilder2.default().build(metadata, observations);\n _this.state = { errors: [], data: controlRecordTree,\n collapse: props.collapse, notification: {} };\n _this.storeChildRef = _this.storeChildRef.bind(_this);\n _this.onValueChanged = _this.onValueChanged.bind(_this);\n _this.onControlAdd = _this.onControlAdd.bind(_this);\n _this.onControlRemove = _this.onControlRemove.bind(_this);\n _this.onEventTrigger = _this.onEventTrigger.bind(_this);\n _this.showNotification = _this.showNotification.bind(_this);\n return _this;\n }\n\n _createClass(Container, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var initScript = this.props.metadata.events && this.props.metadata.events.onFormInit;\n if (initScript) {\n var updatedTree = new _ScriptRunner2.default(this.state.data, this.props.patient).execute(initScript);\n this.setState({ data: updatedTree });\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({ collapse: nextProps.collapse });\n }\n }, {\n key: 'onEventTrigger',\n value: function onEventTrigger(sender, eventName) {\n var eventScripts = _ControlRecordTreeMgr2.default.find(this.state.data, sender).getEventScripts();\n var script = eventScripts && eventScripts[eventName];\n if (script) {\n var updatedTree = new _ScriptRunner2.default(this.state.data, this.props.patient).execute(script);\n this.setState({\n data: updatedTree\n });\n }\n }\n }, {\n key: 'onValueChanged',\n value: function onValueChanged(formFieldPath, value, errors, onActionDone) {\n this.setState(function (previousState) {\n return _extends({}, previousState, {\n data: previousState.data.update(formFieldPath, value, errors),\n collapse: undefined\n });\n }, onActionDone);\n }\n }, {\n key: 'getAddMoreMessage',\n value: function getAddMoreMessage(rootTree, formFieldPath) {\n var targetRecordTree = _ControlRecordTreeMgr2.default.find(rootTree, formFieldPath);\n var name = targetRecordTree.getConceptName() || targetRecordTree.control.label.value;\n var type = targetRecordTree.getConceptType();\n return 'A new ' + name + ' ' + type + ' has been added';\n }\n }, {\n key: 'onControlAdd',\n value: function onControlAdd(formFieldPath) {\n var isNotificationShown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var updatedRecordTree = _ControlRecordTreeMgr2.default.add(this.state.data, formFieldPath);\n\n var addMoreMessage = this.getAddMoreMessage(this.state.data, formFieldPath);\n if (isNotificationShown) {\n this.setState({\n data: updatedRecordTree,\n notification: { message: addMoreMessage, type: _constants2.default.messageType.success }\n });\n } else {\n this.setState({\n data: updatedRecordTree\n });\n }\n\n this.hideNotification();\n }\n }, {\n key: 'onControlRemove',\n value: function onControlRemove(formFieldPath) {\n this.setState(function (previousState) {\n return _extends({}, previousState, {\n data: previousState.data.remove(formFieldPath),\n collapse: undefined\n });\n });\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n var records = this.state.data;\n var observations = new _ObservationMapper2.default().from(records);\n var errors = records.getErrors();\n\n if (!(0, _isEmpty2.default)(errors) && this.props.validateForm) {\n return { errors: errors, observations: observations };\n }\n\n if ((0, _isEmpty2.default)(observations) || this.areAllVoided(observations) || (0, _isEmpty2.default)(errors)) {\n return { observations: observations };\n }\n return { errors: errors, observations: observations };\n }\n\n // deprecated\n\n }, {\n key: 'storeChildRef',\n value: function storeChildRef(ref) {\n if (ref) this.childControls[ref.props.id] = ref;\n }\n }, {\n key: 'areAllVoided',\n value: function areAllVoided(observations) {\n return observations.every(function (obs) {\n return obs.voided;\n });\n }\n }, {\n key: 'showNotification',\n value: function showNotification(message, notificationType) {\n this.setState({ notification: { message: message, type: notificationType } });\n this.hideNotification();\n }\n }, {\n key: 'hideNotification',\n value: function hideNotification() {\n var _this2 = this;\n\n setTimeout(function () {\n _this2.setState({ notification: {} });\n }, _constants2.default.toastTimeout);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$metadata = _props.metadata,\n controls = _props$metadata.controls,\n formName = _props$metadata.name,\n formVersion = _props$metadata.version,\n validate = _props.validate,\n translations = _props.translations,\n patient = _props.patient;\n\n var formTranslations = _extends({}, translations.labels, translations.concepts);\n var patientUuid = patient ? patient.uuid : undefined;\n var childProps = {\n collapse: this.state.collapse,\n errors: this.state.errors,\n formName: formName,\n formVersion: formVersion,\n ref: this.storeChildRef,\n onEventTrigger: this.onEventTrigger,\n onValueChanged: this.onValueChanged,\n onControlAdd: this.onControlAdd,\n onControlRemove: this.onControlRemove,\n patientUuid: patientUuid,\n showNotification: this.showNotification,\n validate: validate,\n validateForm: this.props.validateForm\n };\n var groupedRowControls = (0, _controlsParser.getGroupedControls)(controls, 'row');\n var records = this.state.data.getActive().children.toArray();\n return _react2.default.createElement(\n _reactIntl.IntlProvider,\n { locale: 'en', messages: formTranslations },\n _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_Notification2.default, {\n notification: this.state.notification\n }),\n (0, _controlsParser.displayRowControls)(groupedRowControls, records, childProps)\n )\n );\n }\n }]);\n\n return Container;\n}((0, _AddMoreDecorator2.default)(_react.Component));\n\nContainer.propTypes = {\n collapse: _propTypes2.default.bool.isRequired,\n locale: _propTypes2.default.string,\n metadata: _propTypes2.default.shape({\n controls: _propTypes2.default.arrayOf(_propTypes2.default.shape({\n type: _propTypes2.default.string.isRequired\n })).isRequired,\n id: _propTypes2.default.number.isRequired,\n uuid: _propTypes2.default.string.isRequired,\n name: _propTypes2.default.string.isRequired,\n version: _propTypes2.default.string.isRequired\n }),\n observations: _propTypes2.default.array.isRequired,\n patient: _propTypes2.default.object.isRequired,\n translations: _propTypes2.default.object.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Container.jsx\n// module id = 2\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/components/Container.jsx?");
|
||
|
||
/***/ }),
|
||
/* 3 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 3\n// module chunks = 0 1\n//# sourceURL=webpack:///external_%7B%22root%22:%22React%22,%22commonjs2%22:%22react%22,%22commonjs%22:%22react%22,%22amd%22:%22react%22%7D?");
|
||
|
||
/***/ }),
|
||
/* 4 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(6)(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(10)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 4\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/prop-types/index.js?");
|
||
|
||
/***/ }),
|
||
/* 5 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 5\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/process/browser.js?");
|
||
|
||
/***/ }),
|
||
/* 6 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar assign = __webpack_require__(7);\n\nvar ReactPropTypesSecret = __webpack_require__(8);\nvar checkPropTypes = __webpack_require__(9);\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 6\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/prop-types/factoryWithTypeCheckers.js?");
|
||
|
||
/***/ }),
|
||
/* 7 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/object-assign/index.js\n// module id = 7\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/object-assign/index.js?");
|
||
|
||
/***/ }),
|
||
/* 8 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 8\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/prop-types/lib/ReactPropTypesSecret.js?");
|
||
|
||
/***/ }),
|
||
/* 9 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = __webpack_require__(8);\n var loggedTypeFailures = {};\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n )\n\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 stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 9\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/prop-types/checkPropTypes.js?");
|
||
|
||
/***/ }),
|
||
/* 10 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = __webpack_require__(8);\n\nfunction emptyFunction() {}\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 10\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/prop-types/factoryWithThrowingShims.js?");
|
||
|
||
/***/ }),
|
||
/* 11 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'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.setupAddRemoveButtonsForAddMore = setupAddRemoveButtonsForAddMore;\nexports.getControls = getControls;\nexports.groupControlsByLocation = groupControlsByLocation;\nexports.sortGroupedControls = sortGroupedControls;\nexports.getGroupedControls = getGroupedControls;\nexports.displayRowControls = displayRowControls;\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Row = __webpack_require__(12);\n\nvar _Row2 = _interopRequireDefault(_Row);\n\nvar _groupBy = __webpack_require__(143);\n\nvar _groupBy2 = _interopRequireDefault(_groupBy);\n\nvar _sortBy = __webpack_require__(149);\n\nvar _sortBy2 = _interopRequireDefault(_sortBy);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _each = __webpack_require__(164);\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Util = __webpack_require__(169);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getRecordsForControl(control, records) {\n return records.filter(function (record) {\n return record.control.id === control.id;\n });\n}\n\nfunction createReactComponent(component, props) {\n return _react2.default.createElement(component, props);\n}\n\nfunction setupAddRemoveButtonsForAddMore(records) {\n return records.map(function (record, index) {\n return record.set('showRemove', index > 0).set('showAddMore', index === records.length - 1);\n });\n}\n\nfunction getControls(controls, records, props) {\n return controls.map(function (control) {\n var registeredControl = _componentStore2.default.getRegisteredComponent(control.type);\n if (registeredControl) {\n var recordsForControl = getRecordsForControl(control, records);\n if (recordsForControl.length > 1) {\n recordsForControl = (0, _sortBy2.default)(recordsForControl, function (record) {\n return _Util.Util.toInt(record.formFieldPath.split('-')[1]);\n });\n recordsForControl = setupAddRemoveButtonsForAddMore(recordsForControl);\n }\n var components = recordsForControl.map(function (record) {\n return createReactComponent(registeredControl, _extends({}, props, {\n enabled: record.enabled && props.enabled,\n hidden: record.hidden,\n key: control.id,\n metadata: control,\n value: record.value,\n formFieldPath: record.formFieldPath,\n showAddMore: record.showAddMore,\n showRemove: record.showRemove,\n children: record.children\n }));\n });\n return components;\n }\n return undefined;\n }).filter(function (element) {\n return element !== undefined;\n });\n}\n\nfunction groupControlsByLocation(controls, property) {\n return (0, _groupBy2.default)(controls, 'properties.location.' + property);\n}\n\nfunction sortGroupedControls(controls) {\n var sortedControls = [];\n var sortedIndexes = (0, _sortBy2.default)(Object.keys(controls).map(function (i) {\n return parseInt(i, 10);\n }));\n (0, _each2.default)(sortedIndexes, function (index) {\n sortedControls.push(controls[index]);\n });\n return sortedControls;\n}\n\nfunction getGroupedControls(controls, property) {\n var groupedControls = groupControlsByLocation(controls, property);\n return sortGroupedControls(groupedControls);\n}\n\nfunction displayRowControls(controls, records, childProps) {\n var isInTable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n return (0, _map2.default)(controls, function (rowControls, index) {\n return _react2.default.createElement(_Row2.default, _extends({\n controls: rowControls,\n id: index,\n isInTable: isInTable,\n key: index,\n records: records\n }, childProps));\n });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/controlsParser.js\n// module id = 11\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/controlsParser.js?");
|
||
|
||
/***/ }),
|
||
/* 12 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _controlsParser = __webpack_require__(11);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Row = function (_Component) {\n _inherits(Row, _Component);\n\n function Row() {\n _classCallCheck(this, Row);\n\n return _possibleConstructorReturn(this, (Row.__proto__ || Object.getPrototypeOf(Row)).apply(this, arguments));\n }\n\n _createClass(Row, [{\n key: 'getControlsByColumn',\n value: function getControlsByColumn(sortedColumnControls, records, childProps) {\n var _this2 = this;\n\n var columnControls = [];\n (0, _map2.default)(sortedColumnControls, function (control) {\n var column = control[0].properties.location.column;\n var className = 'form-builder-column form-builder-column-' + column;\n var controls = (0, _controlsParser.getControls)(control, records, childProps);\n columnControls.push({ controls: controls, className: className });\n });\n if (this.shouldDisplayControls(columnControls)) {\n return (0, _map2.default)(columnControls, function (obj) {\n return _this2.getAddMoreControls(obj.controls, obj.className);\n });\n }\n return null;\n }\n }, {\n key: 'getAddMoreControls',\n value: function getAddMoreControls(controls, className) {\n return controls.map(function (control, index) {\n return control.map(function (ctrl) {\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-column-wrapper' },\n _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)(className + '-index' + index, { hidden: ctrl.props.hidden }, { 'same-line': (0, _find2.default)(ctrl.props.metadata.properties, function (value, key) {\n return key === 'sameLine' && value;\n }) }),\n key: ctrl.props.formFieldPath\n },\n ctrl\n )\n );\n });\n });\n }\n }, {\n key: 'shouldDisplayControls',\n value: function shouldDisplayControls(columnControls) {\n var showControls = false;\n columnControls.forEach(function (controls) {\n controls.controls.forEach(function (control) {\n control.forEach(function (ctrl) {\n if (!ctrl.props.hidden) {\n showControls = true;\n }\n });\n });\n });\n return showControls;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n controls = _props.controls,\n records = _props.records,\n isInTable = _props.isInTable,\n childProps = _objectWithoutProperties(_props, ['controls', 'records', 'isInTable']);\n\n var shouldDisplayLeftEmptyCell = false;\n var shouldDisplayRightEmptyCell = false;\n var groupedColumnControls = (0, _controlsParser.getGroupedControls)(controls, 'column');\n if (groupedColumnControls.length < 2 && isInTable) {\n var column = groupedColumnControls[0][0].properties.location.column;\n if (column === 0) {\n shouldDisplayRightEmptyCell = true;\n } else {\n shouldDisplayLeftEmptyCell = true;\n }\n }\n var rowElement = this.getControlsByColumn(groupedColumnControls, records, childProps);\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-row' },\n rowElement && shouldDisplayLeftEmptyCell && _react2.default.createElement(\n 'div',\n { className: 'form-builder-column-wrapper' },\n _react2.default.createElement('div', { className: (0, _classnames2.default)('form-builder-column', 'form-builder-column-empty-left') })\n ),\n rowElement,\n rowElement && shouldDisplayRightEmptyCell && _react2.default.createElement(\n 'div',\n { className: 'form-builder-column-wrapper' },\n _react2.default.createElement('div', { className: (0, _classnames2.default)('form-builder-column', 'form-builder-column-empty-right') })\n )\n );\n }\n }]);\n\n return Row;\n}(_react.Component);\n\nexports.default = Row;\n\n\nRow.propTypes = {\n collapse: _react.PropTypes.bool,\n controls: _react.PropTypes.array.isRequired,\n formName: _react.PropTypes.string.isRequired,\n formVersion: _react.PropTypes.string.isRequired,\n id: _react.PropTypes.number.isRequired,\n isInTable: _react.PropTypes.bool,\n onValueChanged: _react.PropTypes.func.isRequired,\n records: _react.PropTypes.any.isRequired,\n validate: _react.PropTypes.bool.isRequired,\n validateForm: _react.PropTypes.bool.isRequired\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Row.jsx\n// module id = 12\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/components/Row.jsx?");
|
||
|
||
/***/ }),
|
||
/* 13 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayMap = __webpack_require__(14),\n baseIteratee = __webpack_require__(15),\n baseMap = __webpack_require__(129),\n isArray = __webpack_require__(78);\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/map.js\n// module id = 13\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/map.js?");
|
||
|
||
/***/ }),
|
||
/* 14 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayMap.js\n// module id = 14\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arrayMap.js?");
|
||
|
||
/***/ }),
|
||
/* 15 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseMatches = __webpack_require__(16),\n baseMatchesProperty = __webpack_require__(110),\n identity = __webpack_require__(125),\n isArray = __webpack_require__(78),\n property = __webpack_require__(126);\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIteratee.js\n// module id = 15\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIteratee.js?");
|
||
|
||
/***/ }),
|
||
/* 16 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsMatch = __webpack_require__(17),\n getMatchData = __webpack_require__(107),\n matchesStrictComparable = __webpack_require__(109);\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMatches.js\n// module id = 16\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseMatches.js?");
|
||
|
||
/***/ }),
|
||
/* 17 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Stack = __webpack_require__(18),\n baseIsEqual = __webpack_require__(62);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsMatch.js\n// module id = 17\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIsMatch.js?");
|
||
|
||
/***/ }),
|
||
/* 18 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var ListCache = __webpack_require__(19),\n stackClear = __webpack_require__(27),\n stackDelete = __webpack_require__(28),\n stackGet = __webpack_require__(29),\n stackHas = __webpack_require__(30),\n stackSet = __webpack_require__(31);\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Stack.js\n// module id = 18\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Stack.js?");
|
||
|
||
/***/ }),
|
||
/* 19 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var listCacheClear = __webpack_require__(20),\n listCacheDelete = __webpack_require__(21),\n listCacheGet = __webpack_require__(24),\n listCacheHas = __webpack_require__(25),\n listCacheSet = __webpack_require__(26);\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_ListCache.js\n// module id = 19\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_ListCache.js?");
|
||
|
||
/***/ }),
|
||
/* 20 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheClear.js\n// module id = 20\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_listCacheClear.js?");
|
||
|
||
/***/ }),
|
||
/* 21 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var assocIndexOf = __webpack_require__(22);\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheDelete.js\n// module id = 21\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_listCacheDelete.js?");
|
||
|
||
/***/ }),
|
||
/* 22 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var eq = __webpack_require__(23);\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_assocIndexOf.js\n// module id = 22\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_assocIndexOf.js?");
|
||
|
||
/***/ }),
|
||
/* 23 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/eq.js\n// module id = 23\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/eq.js?");
|
||
|
||
/***/ }),
|
||
/* 24 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var assocIndexOf = __webpack_require__(22);\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheGet.js\n// module id = 24\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_listCacheGet.js?");
|
||
|
||
/***/ }),
|
||
/* 25 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var assocIndexOf = __webpack_require__(22);\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheHas.js\n// module id = 25\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_listCacheHas.js?");
|
||
|
||
/***/ }),
|
||
/* 26 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var assocIndexOf = __webpack_require__(22);\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheSet.js\n// module id = 26\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_listCacheSet.js?");
|
||
|
||
/***/ }),
|
||
/* 27 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var ListCache = __webpack_require__(19);\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackClear.js\n// module id = 27\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_stackClear.js?");
|
||
|
||
/***/ }),
|
||
/* 28 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackDelete.js\n// module id = 28\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_stackDelete.js?");
|
||
|
||
/***/ }),
|
||
/* 29 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackGet.js\n// module id = 29\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_stackGet.js?");
|
||
|
||
/***/ }),
|
||
/* 30 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackHas.js\n// module id = 30\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_stackHas.js?");
|
||
|
||
/***/ }),
|
||
/* 31 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var ListCache = __webpack_require__(19),\n Map = __webpack_require__(32),\n MapCache = __webpack_require__(47);\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackSet.js\n// module id = 31\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_stackSet.js?");
|
||
|
||
/***/ }),
|
||
/* 32 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33),\n root = __webpack_require__(38);\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Map.js\n// module id = 32\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Map.js?");
|
||
|
||
/***/ }),
|
||
/* 33 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsNative = __webpack_require__(34),\n getValue = __webpack_require__(46);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getNative.js\n// module id = 33\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getNative.js?");
|
||
|
||
/***/ }),
|
||
/* 34 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isFunction = __webpack_require__(35),\n isMasked = __webpack_require__(43),\n isObject = __webpack_require__(42),\n toSource = __webpack_require__(45);\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsNative.js\n// module id = 34\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIsNative.js?");
|
||
|
||
/***/ }),
|
||
/* 35 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGetTag = __webpack_require__(36),\n isObject = __webpack_require__(42);\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isFunction.js\n// module id = 35\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isFunction.js?");
|
||
|
||
/***/ }),
|
||
/* 36 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Symbol = __webpack_require__(37),\n getRawTag = __webpack_require__(40),\n objectToString = __webpack_require__(41);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGetTag.js\n// module id = 36\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseGetTag.js?");
|
||
|
||
/***/ }),
|
||
/* 37 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var root = __webpack_require__(38);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Symbol.js\n// module id = 37\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Symbol.js?");
|
||
|
||
/***/ }),
|
||
/* 38 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var freeGlobal = __webpack_require__(39);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_root.js\n// module id = 38\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_root.js?");
|
||
|
||
/***/ }),
|
||
/* 39 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_freeGlobal.js\n// module id = 39\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_freeGlobal.js?");
|
||
|
||
/***/ }),
|
||
/* 40 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Symbol = __webpack_require__(37);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getRawTag.js\n// module id = 40\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getRawTag.js?");
|
||
|
||
/***/ }),
|
||
/* 41 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_objectToString.js\n// module id = 41\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_objectToString.js?");
|
||
|
||
/***/ }),
|
||
/* 42 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isObject.js\n// module id = 42\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isObject.js?");
|
||
|
||
/***/ }),
|
||
/* 43 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var coreJsData = __webpack_require__(44);\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isMasked.js\n// module id = 43\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isMasked.js?");
|
||
|
||
/***/ }),
|
||
/* 44 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var root = __webpack_require__(38);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_coreJsData.js\n// module id = 44\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_coreJsData.js?");
|
||
|
||
/***/ }),
|
||
/* 45 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_toSource.js\n// module id = 45\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_toSource.js?");
|
||
|
||
/***/ }),
|
||
/* 46 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getValue.js\n// module id = 46\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getValue.js?");
|
||
|
||
/***/ }),
|
||
/* 47 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var mapCacheClear = __webpack_require__(48),\n mapCacheDelete = __webpack_require__(56),\n mapCacheGet = __webpack_require__(59),\n mapCacheHas = __webpack_require__(60),\n mapCacheSet = __webpack_require__(61);\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_MapCache.js\n// module id = 47\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_MapCache.js?");
|
||
|
||
/***/ }),
|
||
/* 48 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Hash = __webpack_require__(49),\n ListCache = __webpack_require__(19),\n Map = __webpack_require__(32);\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheClear.js\n// module id = 48\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_mapCacheClear.js?");
|
||
|
||
/***/ }),
|
||
/* 49 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var hashClear = __webpack_require__(50),\n hashDelete = __webpack_require__(52),\n hashGet = __webpack_require__(53),\n hashHas = __webpack_require__(54),\n hashSet = __webpack_require__(55);\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Hash.js\n// module id = 49\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Hash.js?");
|
||
|
||
/***/ }),
|
||
/* 50 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var nativeCreate = __webpack_require__(51);\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashClear.js\n// module id = 50\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_hashClear.js?");
|
||
|
||
/***/ }),
|
||
/* 51 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33);\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeCreate.js\n// module id = 51\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_nativeCreate.js?");
|
||
|
||
/***/ }),
|
||
/* 52 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashDelete.js\n// module id = 52\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_hashDelete.js?");
|
||
|
||
/***/ }),
|
||
/* 53 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var nativeCreate = __webpack_require__(51);\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashGet.js\n// module id = 53\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_hashGet.js?");
|
||
|
||
/***/ }),
|
||
/* 54 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var nativeCreate = __webpack_require__(51);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashHas.js\n// module id = 54\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_hashHas.js?");
|
||
|
||
/***/ }),
|
||
/* 55 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var nativeCreate = __webpack_require__(51);\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashSet.js\n// module id = 55\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_hashSet.js?");
|
||
|
||
/***/ }),
|
||
/* 56 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getMapData = __webpack_require__(57);\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheDelete.js\n// module id = 56\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_mapCacheDelete.js?");
|
||
|
||
/***/ }),
|
||
/* 57 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isKeyable = __webpack_require__(58);\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getMapData.js\n// module id = 57\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getMapData.js?");
|
||
|
||
/***/ }),
|
||
/* 58 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isKeyable.js\n// module id = 58\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isKeyable.js?");
|
||
|
||
/***/ }),
|
||
/* 59 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getMapData = __webpack_require__(57);\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheGet.js\n// module id = 59\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_mapCacheGet.js?");
|
||
|
||
/***/ }),
|
||
/* 60 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getMapData = __webpack_require__(57);\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheHas.js\n// module id = 60\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_mapCacheHas.js?");
|
||
|
||
/***/ }),
|
||
/* 61 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getMapData = __webpack_require__(57);\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheSet.js\n// module id = 61\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_mapCacheSet.js?");
|
||
|
||
/***/ }),
|
||
/* 62 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsEqualDeep = __webpack_require__(63),\n isObjectLike = __webpack_require__(87);\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsEqual.js\n// module id = 62\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIsEqual.js?");
|
||
|
||
/***/ }),
|
||
/* 63 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Stack = __webpack_require__(18),\n equalArrays = __webpack_require__(64),\n equalByTag = __webpack_require__(70),\n equalObjects = __webpack_require__(74),\n getTag = __webpack_require__(102),\n isArray = __webpack_require__(78),\n isBuffer = __webpack_require__(88),\n isTypedArray = __webpack_require__(92);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsEqualDeep.js\n// module id = 63\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIsEqualDeep.js?");
|
||
|
||
/***/ }),
|
||
/* 64 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var SetCache = __webpack_require__(65),\n arraySome = __webpack_require__(68),\n cacheHas = __webpack_require__(69);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalArrays.js\n// module id = 64\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_equalArrays.js?");
|
||
|
||
/***/ }),
|
||
/* 65 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var MapCache = __webpack_require__(47),\n setCacheAdd = __webpack_require__(66),\n setCacheHas = __webpack_require__(67);\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_SetCache.js\n// module id = 65\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_SetCache.js?");
|
||
|
||
/***/ }),
|
||
/* 66 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheAdd.js\n// module id = 66\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_setCacheAdd.js?");
|
||
|
||
/***/ }),
|
||
/* 67 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheHas.js\n// module id = 67\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_setCacheHas.js?");
|
||
|
||
/***/ }),
|
||
/* 68 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arraySome.js\n// module id = 68\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arraySome.js?");
|
||
|
||
/***/ }),
|
||
/* 69 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cacheHas.js\n// module id = 69\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_cacheHas.js?");
|
||
|
||
/***/ }),
|
||
/* 70 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Symbol = __webpack_require__(37),\n Uint8Array = __webpack_require__(71),\n eq = __webpack_require__(23),\n equalArrays = __webpack_require__(64),\n mapToArray = __webpack_require__(72),\n setToArray = __webpack_require__(73);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalByTag.js\n// module id = 70\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_equalByTag.js?");
|
||
|
||
/***/ }),
|
||
/* 71 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var root = __webpack_require__(38);\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Uint8Array.js\n// module id = 71\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Uint8Array.js?");
|
||
|
||
/***/ }),
|
||
/* 72 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapToArray.js\n// module id = 72\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_mapToArray.js?");
|
||
|
||
/***/ }),
|
||
/* 73 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToArray.js\n// module id = 73\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_setToArray.js?");
|
||
|
||
/***/ }),
|
||
/* 74 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getAllKeys = __webpack_require__(75);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalObjects.js\n// module id = 74\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_equalObjects.js?");
|
||
|
||
/***/ }),
|
||
/* 75 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGetAllKeys = __webpack_require__(76),\n getSymbols = __webpack_require__(79),\n keys = __webpack_require__(82);\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getAllKeys.js\n// module id = 75\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getAllKeys.js?");
|
||
|
||
/***/ }),
|
||
/* 76 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayPush = __webpack_require__(77),\n isArray = __webpack_require__(78);\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGetAllKeys.js\n// module id = 76\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseGetAllKeys.js?");
|
||
|
||
/***/ }),
|
||
/* 77 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayPush.js\n// module id = 77\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arrayPush.js?");
|
||
|
||
/***/ }),
|
||
/* 78 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArray.js\n// module id = 78\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isArray.js?");
|
||
|
||
/***/ }),
|
||
/* 79 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayFilter = __webpack_require__(80),\n stubArray = __webpack_require__(81);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getSymbols.js\n// module id = 79\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getSymbols.js?");
|
||
|
||
/***/ }),
|
||
/* 80 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayFilter.js\n// module id = 80\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arrayFilter.js?");
|
||
|
||
/***/ }),
|
||
/* 81 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/stubArray.js\n// module id = 81\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/stubArray.js?");
|
||
|
||
/***/ }),
|
||
/* 82 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayLikeKeys = __webpack_require__(83),\n baseKeys = __webpack_require__(97),\n isArrayLike = __webpack_require__(101);\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/keys.js\n// module id = 82\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/keys.js?");
|
||
|
||
/***/ }),
|
||
/* 83 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseTimes = __webpack_require__(84),\n isArguments = __webpack_require__(85),\n isArray = __webpack_require__(78),\n isBuffer = __webpack_require__(88),\n isIndex = __webpack_require__(91),\n isTypedArray = __webpack_require__(92);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayLikeKeys.js\n// module id = 83\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arrayLikeKeys.js?");
|
||
|
||
/***/ }),
|
||
/* 84 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseTimes.js\n// module id = 84\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseTimes.js?");
|
||
|
||
/***/ }),
|
||
/* 85 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsArguments = __webpack_require__(86),\n isObjectLike = __webpack_require__(87);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArguments.js\n// module id = 85\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isArguments.js?");
|
||
|
||
/***/ }),
|
||
/* 86 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGetTag = __webpack_require__(36),\n isObjectLike = __webpack_require__(87);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsArguments.js\n// module id = 86\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIsArguments.js?");
|
||
|
||
/***/ }),
|
||
/* 87 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isObjectLike.js\n// module id = 87\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isObjectLike.js?");
|
||
|
||
/***/ }),
|
||
/* 88 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(38),\n stubFalse = __webpack_require__(90);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(89)(module)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isBuffer.js\n// module id = 88\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isBuffer.js?");
|
||
|
||
/***/ }),
|
||
/* 89 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 89\n// module chunks = 0 1\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");
|
||
|
||
/***/ }),
|
||
/* 90 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/stubFalse.js\n// module id = 90\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/stubFalse.js?");
|
||
|
||
/***/ }),
|
||
/* 91 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isIndex.js\n// module id = 91\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isIndex.js?");
|
||
|
||
/***/ }),
|
||
/* 92 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsTypedArray = __webpack_require__(93),\n baseUnary = __webpack_require__(95),\n nodeUtil = __webpack_require__(96);\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isTypedArray.js\n// module id = 92\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isTypedArray.js?");
|
||
|
||
/***/ }),
|
||
/* 93 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGetTag = __webpack_require__(36),\n isLength = __webpack_require__(94),\n isObjectLike = __webpack_require__(87);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsTypedArray.js\n// module id = 93\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseIsTypedArray.js?");
|
||
|
||
/***/ }),
|
||
/* 94 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isLength.js\n// module id = 94\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isLength.js?");
|
||
|
||
/***/ }),
|
||
/* 95 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseUnary.js\n// module id = 95\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseUnary.js?");
|
||
|
||
/***/ }),
|
||
/* 96 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(39);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(89)(module)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nodeUtil.js\n// module id = 96\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_nodeUtil.js?");
|
||
|
||
/***/ }),
|
||
/* 97 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isPrototype = __webpack_require__(98),\n nativeKeys = __webpack_require__(99);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeys.js\n// module id = 97\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseKeys.js?");
|
||
|
||
/***/ }),
|
||
/* 98 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isPrototype.js\n// module id = 98\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isPrototype.js?");
|
||
|
||
/***/ }),
|
||
/* 99 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var overArg = __webpack_require__(100);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeys.js\n// module id = 99\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_nativeKeys.js?");
|
||
|
||
/***/ }),
|
||
/* 100 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_overArg.js\n// module id = 100\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_overArg.js?");
|
||
|
||
/***/ }),
|
||
/* 101 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isFunction = __webpack_require__(35),\n isLength = __webpack_require__(94);\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArrayLike.js\n// module id = 101\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isArrayLike.js?");
|
||
|
||
/***/ }),
|
||
/* 102 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var DataView = __webpack_require__(103),\n Map = __webpack_require__(32),\n Promise = __webpack_require__(104),\n Set = __webpack_require__(105),\n WeakMap = __webpack_require__(106),\n baseGetTag = __webpack_require__(36),\n toSource = __webpack_require__(45);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getTag.js\n// module id = 102\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getTag.js?");
|
||
|
||
/***/ }),
|
||
/* 103 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33),\n root = __webpack_require__(38);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_DataView.js\n// module id = 103\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_DataView.js?");
|
||
|
||
/***/ }),
|
||
/* 104 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33),\n root = __webpack_require__(38);\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Promise.js\n// module id = 104\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Promise.js?");
|
||
|
||
/***/ }),
|
||
/* 105 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33),\n root = __webpack_require__(38);\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Set.js\n// module id = 105\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_Set.js?");
|
||
|
||
/***/ }),
|
||
/* 106 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33),\n root = __webpack_require__(38);\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_WeakMap.js\n// module id = 106\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_WeakMap.js?");
|
||
|
||
/***/ }),
|
||
/* 107 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isStrictComparable = __webpack_require__(108),\n keys = __webpack_require__(82);\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getMatchData.js\n// module id = 107\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_getMatchData.js?");
|
||
|
||
/***/ }),
|
||
/* 108 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isObject = __webpack_require__(42);\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isStrictComparable.js\n// module id = 108\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isStrictComparable.js?");
|
||
|
||
/***/ }),
|
||
/* 109 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_matchesStrictComparable.js\n// module id = 109\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_matchesStrictComparable.js?");
|
||
|
||
/***/ }),
|
||
/* 110 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsEqual = __webpack_require__(62),\n get = __webpack_require__(111),\n hasIn = __webpack_require__(122),\n isKey = __webpack_require__(114),\n isStrictComparable = __webpack_require__(108),\n matchesStrictComparable = __webpack_require__(109),\n toKey = __webpack_require__(121);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMatchesProperty.js\n// module id = 110\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseMatchesProperty.js?");
|
||
|
||
/***/ }),
|
||
/* 111 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGet = __webpack_require__(112);\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/get.js\n// module id = 111\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/get.js?");
|
||
|
||
/***/ }),
|
||
/* 112 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var castPath = __webpack_require__(113),\n toKey = __webpack_require__(121);\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGet.js\n// module id = 112\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseGet.js?");
|
||
|
||
/***/ }),
|
||
/* 113 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isArray = __webpack_require__(78),\n isKey = __webpack_require__(114),\n stringToPath = __webpack_require__(116),\n toString = __webpack_require__(119);\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castPath.js\n// module id = 113\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_castPath.js?");
|
||
|
||
/***/ }),
|
||
/* 114 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isArray = __webpack_require__(78),\n isSymbol = __webpack_require__(115);\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isKey.js\n// module id = 114\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isKey.js?");
|
||
|
||
/***/ }),
|
||
/* 115 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGetTag = __webpack_require__(36),\n isObjectLike = __webpack_require__(87);\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isSymbol.js\n// module id = 115\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isSymbol.js?");
|
||
|
||
/***/ }),
|
||
/* 116 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var memoizeCapped = __webpack_require__(117);\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stringToPath.js\n// module id = 116\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_stringToPath.js?");
|
||
|
||
/***/ }),
|
||
/* 117 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var memoize = __webpack_require__(118);\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_memoizeCapped.js\n// module id = 117\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_memoizeCapped.js?");
|
||
|
||
/***/ }),
|
||
/* 118 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var MapCache = __webpack_require__(47);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/memoize.js\n// module id = 118\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/memoize.js?");
|
||
|
||
/***/ }),
|
||
/* 119 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseToString = __webpack_require__(120);\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toString.js\n// module id = 119\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/toString.js?");
|
||
|
||
/***/ }),
|
||
/* 120 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Symbol = __webpack_require__(37),\n arrayMap = __webpack_require__(14),\n isArray = __webpack_require__(78),\n isSymbol = __webpack_require__(115);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseToString.js\n// module id = 120\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseToString.js?");
|
||
|
||
/***/ }),
|
||
/* 121 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isSymbol = __webpack_require__(115);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_toKey.js\n// module id = 121\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_toKey.js?");
|
||
|
||
/***/ }),
|
||
/* 122 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseHasIn = __webpack_require__(123),\n hasPath = __webpack_require__(124);\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/hasIn.js\n// module id = 122\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/hasIn.js?");
|
||
|
||
/***/ }),
|
||
/* 123 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseHasIn.js\n// module id = 123\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseHasIn.js?");
|
||
|
||
/***/ }),
|
||
/* 124 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var castPath = __webpack_require__(113),\n isArguments = __webpack_require__(85),\n isArray = __webpack_require__(78),\n isIndex = __webpack_require__(91),\n isLength = __webpack_require__(94),\n toKey = __webpack_require__(121);\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hasPath.js\n// module id = 124\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_hasPath.js?");
|
||
|
||
/***/ }),
|
||
/* 125 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/identity.js\n// module id = 125\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/identity.js?");
|
||
|
||
/***/ }),
|
||
/* 126 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseProperty = __webpack_require__(127),\n basePropertyDeep = __webpack_require__(128),\n isKey = __webpack_require__(114),\n toKey = __webpack_require__(121);\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/property.js\n// module id = 126\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/property.js?");
|
||
|
||
/***/ }),
|
||
/* 127 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseProperty.js\n// module id = 127\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseProperty.js?");
|
||
|
||
/***/ }),
|
||
/* 128 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGet = __webpack_require__(112);\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_basePropertyDeep.js\n// module id = 128\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_basePropertyDeep.js?");
|
||
|
||
/***/ }),
|
||
/* 129 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseEach = __webpack_require__(130),\n isArrayLike = __webpack_require__(101);\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMap.js\n// module id = 129\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseMap.js?");
|
||
|
||
/***/ }),
|
||
/* 130 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseForOwn = __webpack_require__(131),\n createBaseEach = __webpack_require__(134);\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseEach.js\n// module id = 130\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseEach.js?");
|
||
|
||
/***/ }),
|
||
/* 131 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseFor = __webpack_require__(132),\n keys = __webpack_require__(82);\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseForOwn.js\n// module id = 131\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseForOwn.js?");
|
||
|
||
/***/ }),
|
||
/* 132 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var createBaseFor = __webpack_require__(133);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFor.js\n// module id = 132\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseFor.js?");
|
||
|
||
/***/ }),
|
||
/* 133 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createBaseFor.js\n// module id = 133\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_createBaseFor.js?");
|
||
|
||
/***/ }),
|
||
/* 134 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isArrayLike = __webpack_require__(101);\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createBaseEach.js\n// module id = 134\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_createBaseEach.js?");
|
||
|
||
/***/ }),
|
||
/* 135 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 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) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\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\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\treturn classNames;\n\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 135\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/classnames/index.js?");
|
||
|
||
/***/ }),
|
||
/* 136 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var createFind = __webpack_require__(137),\n findIndex = __webpack_require__(138);\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/find.js\n// module id = 136\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/find.js?");
|
||
|
||
/***/ }),
|
||
/* 137 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIteratee = __webpack_require__(15),\n isArrayLike = __webpack_require__(101),\n keys = __webpack_require__(82);\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createFind.js\n// module id = 137\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_createFind.js?");
|
||
|
||
/***/ }),
|
||
/* 138 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseFindIndex = __webpack_require__(139),\n baseIteratee = __webpack_require__(15),\n toInteger = __webpack_require__(140);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/findIndex.js\n// module id = 138\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/findIndex.js?");
|
||
|
||
/***/ }),
|
||
/* 139 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFindIndex.js\n// module id = 139\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseFindIndex.js?");
|
||
|
||
/***/ }),
|
||
/* 140 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var toFinite = __webpack_require__(141);\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toInteger.js\n// module id = 140\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/toInteger.js?");
|
||
|
||
/***/ }),
|
||
/* 141 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var toNumber = __webpack_require__(142);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toFinite.js\n// module id = 141\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/toFinite.js?");
|
||
|
||
/***/ }),
|
||
/* 142 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isObject = __webpack_require__(42),\n isSymbol = __webpack_require__(115);\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toNumber.js\n// module id = 142\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/toNumber.js?");
|
||
|
||
/***/ }),
|
||
/* 143 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseAssignValue = __webpack_require__(144),\n createAggregator = __webpack_require__(146);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/groupBy.js\n// module id = 143\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/groupBy.js?");
|
||
|
||
/***/ }),
|
||
/* 144 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var defineProperty = __webpack_require__(145);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssignValue.js\n// module id = 144\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseAssignValue.js?");
|
||
|
||
/***/ }),
|
||
/* 145 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getNative = __webpack_require__(33);\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_defineProperty.js\n// module id = 145\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_defineProperty.js?");
|
||
|
||
/***/ }),
|
||
/* 146 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayAggregator = __webpack_require__(147),\n baseAggregator = __webpack_require__(148),\n baseIteratee = __webpack_require__(15),\n isArray = __webpack_require__(78);\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createAggregator.js\n// module id = 146\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_createAggregator.js?");
|
||
|
||
/***/ }),
|
||
/* 147 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayAggregator.js\n// module id = 147\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arrayAggregator.js?");
|
||
|
||
/***/ }),
|
||
/* 148 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseEach = __webpack_require__(130);\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAggregator.js\n// module id = 148\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseAggregator.js?");
|
||
|
||
/***/ }),
|
||
/* 149 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseFlatten = __webpack_require__(150),\n baseOrderBy = __webpack_require__(152),\n baseRest = __webpack_require__(156),\n isIterateeCall = __webpack_require__(163);\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/sortBy.js\n// module id = 149\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/sortBy.js?");
|
||
|
||
/***/ }),
|
||
/* 150 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayPush = __webpack_require__(77),\n isFlattenable = __webpack_require__(151);\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFlatten.js\n// module id = 150\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseFlatten.js?");
|
||
|
||
/***/ }),
|
||
/* 151 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Symbol = __webpack_require__(37),\n isArguments = __webpack_require__(85),\n isArray = __webpack_require__(78);\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isFlattenable.js\n// module id = 151\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isFlattenable.js?");
|
||
|
||
/***/ }),
|
||
/* 152 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayMap = __webpack_require__(14),\n baseIteratee = __webpack_require__(15),\n baseMap = __webpack_require__(129),\n baseSortBy = __webpack_require__(153),\n baseUnary = __webpack_require__(95),\n compareMultiple = __webpack_require__(154),\n identity = __webpack_require__(125);\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseOrderBy.js\n// module id = 152\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseOrderBy.js?");
|
||
|
||
/***/ }),
|
||
/* 153 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSortBy.js\n// module id = 153\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseSortBy.js?");
|
||
|
||
/***/ }),
|
||
/* 154 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var compareAscending = __webpack_require__(155);\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_compareMultiple.js\n// module id = 154\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_compareMultiple.js?");
|
||
|
||
/***/ }),
|
||
/* 155 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isSymbol = __webpack_require__(115);\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_compareAscending.js\n// module id = 155\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_compareAscending.js?");
|
||
|
||
/***/ }),
|
||
/* 156 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var identity = __webpack_require__(125),\n overRest = __webpack_require__(157),\n setToString = __webpack_require__(159);\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseRest.js\n// module id = 156\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseRest.js?");
|
||
|
||
/***/ }),
|
||
/* 157 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var apply = __webpack_require__(158);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_overRest.js\n// module id = 157\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_overRest.js?");
|
||
|
||
/***/ }),
|
||
/* 158 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_apply.js\n// module id = 158\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_apply.js?");
|
||
|
||
/***/ }),
|
||
/* 159 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseSetToString = __webpack_require__(160),\n shortOut = __webpack_require__(162);\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToString.js\n// module id = 159\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_setToString.js?");
|
||
|
||
/***/ }),
|
||
/* 160 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var constant = __webpack_require__(161),\n defineProperty = __webpack_require__(145),\n identity = __webpack_require__(125);\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSetToString.js\n// module id = 160\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseSetToString.js?");
|
||
|
||
/***/ }),
|
||
/* 161 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/constant.js\n// module id = 161\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/constant.js?");
|
||
|
||
/***/ }),
|
||
/* 162 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_shortOut.js\n// module id = 162\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_shortOut.js?");
|
||
|
||
/***/ }),
|
||
/* 163 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var eq = __webpack_require__(23),\n isArrayLike = __webpack_require__(101),\n isIndex = __webpack_require__(91),\n isObject = __webpack_require__(42);\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isIterateeCall.js\n// module id = 163\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_isIterateeCall.js?");
|
||
|
||
/***/ }),
|
||
/* 164 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("module.exports = __webpack_require__(165);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/each.js\n// module id = 164\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/each.js?");
|
||
|
||
/***/ }),
|
||
/* 165 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayEach = __webpack_require__(166),\n baseEach = __webpack_require__(130),\n castFunction = __webpack_require__(167),\n isArray = __webpack_require__(78);\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/forEach.js\n// module id = 165\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/forEach.js?");
|
||
|
||
/***/ }),
|
||
/* 166 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayEach.js\n// module id = 166\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_arrayEach.js?");
|
||
|
||
/***/ }),
|
||
/* 167 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var identity = __webpack_require__(125);\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castFunction.js\n// module id = 167\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_castFunction.js?");
|
||
|
||
/***/ }),
|
||
/* 168 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ComponentStore = function () {\n function ComponentStore() {\n _classCallCheck(this, ComponentStore);\n\n if (!window.componentStore) {\n window.componentStore = this;\n this.componentList = {};\n this.designerComponentList = {};\n }\n return window.componentStore;\n }\n\n _createClass(ComponentStore, [{\n key: \"registerComponent\",\n value: function registerComponent(type, component) {\n this.componentList[type.toLowerCase()] = component;\n }\n }, {\n key: \"getRegisteredComponent\",\n value: function getRegisteredComponent(type) {\n return this.componentList[type.toLowerCase()];\n }\n }, {\n key: \"deRegisterComponent\",\n value: function deRegisterComponent(type) {\n delete this.componentList[type.toLowerCase()];\n }\n }, {\n key: \"getAllRegisteredComponents\",\n value: function getAllRegisteredComponents() {\n return this.componentList;\n }\n }, {\n key: \"registerDesignerComponent\",\n value: function registerDesignerComponent(type, component) {\n this.designerComponentList[type.toLowerCase()] = component;\n }\n }, {\n key: \"getDesignerComponent\",\n value: function getDesignerComponent(type) {\n return this.designerComponentList[type.toLowerCase()];\n }\n }, {\n key: \"getAllDesignerComponents\",\n value: function getAllDesignerComponents() {\n return this.designerComponentList;\n }\n }, {\n key: \"deRegisterDesignerComponent\",\n value: function deRegisterDesignerComponent(type) {\n delete this.designerComponentList[type.toLowerCase()];\n }\n }]);\n\n return ComponentStore;\n}();\n\nexports.default = new ComponentStore();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/componentStore.js\n// module id = 168\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/componentStore.js?");
|
||
|
||
/***/ }),
|
||
/* 169 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Util = exports.Util = function () {\n function Util() {\n _classCallCheck(this, Util);\n }\n\n _createClass(Util, null, [{\n key: 'toInt',\n value: function toInt(obj) {\n return Number.parseInt(obj, 10);\n }\n }, {\n key: 'increment',\n value: function increment(obj) {\n return Util.toInt(obj) + 1;\n }\n }, {\n key: 'getFileType',\n value: function getFileType(fileType) {\n var pdfType = 'pdf';\n var imageType = 'image';\n var videoType = 'video';\n if (fileType.indexOf(pdfType) !== -1) {\n return pdfType;\n }\n if (fileType.indexOf(imageType) !== -1) {\n return imageType;\n }\n if (fileType.indexOf(videoType) !== -1) {\n return videoType;\n }\n return 'not_supported';\n }\n }, {\n key: 'uploadFile',\n value: function uploadFile(file, patientUuid, fileType) {\n var searchStr = ';base64';\n var format = file.split(searchStr)[0].split('/')[1];\n var url = '/openmrs/ws/rest/v1/bahmnicore/visitDocument/uploadDocument';\n return fetch(url, {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({\n content: file.substring(file.indexOf(searchStr) + searchStr.length, file.length),\n format: format,\n patientUuid: patientUuid,\n fileType: fileType || 'file'\n }),\n credentials: 'include'\n });\n }\n }, {\n key: 'isComplexMediaConcept',\n value: function isComplexMediaConcept(concept) {\n var datatype = concept.datatype,\n conceptHandler = concept.conceptHandler;\n\n return datatype === 'Complex' && (conceptHandler === 'ImageUrlHandler' || conceptHandler === 'VideoUrlHandler');\n }\n }]);\n\n return Util;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Util.js\n// module id = 169\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/Util.js?");
|
||
|
||
/***/ }),
|
||
/* 170 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseKeys = __webpack_require__(97),\n getTag = __webpack_require__(102),\n isArguments = __webpack_require__(85),\n isArray = __webpack_require__(78),\n isArrayLike = __webpack_require__(101),\n isBuffer = __webpack_require__(88),\n isPrototype = __webpack_require__(98),\n isTypedArray = __webpack_require__(92);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isEmpty.js\n// module id = 170\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/isEmpty.js?");
|
||
|
||
/***/ }),
|
||
/* 171 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ControlRecord = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _immutable = __webpack_require__(172);\n\nvar _MapperStore = __webpack_require__(173);\n\nvar _MapperStore2 = _interopRequireDefault(_MapperStore);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _ValueMapperStore = __webpack_require__(190);\n\nvar _ValueMapperStore2 = _interopRequireDefault(_ValueMapperStore);\n\nvar _ControlUtil = __webpack_require__(183);\n\nvar _Obs = __webpack_require__(175);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar ControlRecord = exports.ControlRecord = new _immutable.Record({\n valueMapper: undefined,\n control: undefined,\n formFieldPath: '',\n children: undefined,\n value: {},\n active: true,\n enabled: true,\n hidden: false,\n showAddMore: false,\n showRemove: false,\n errors: [],\n dataSource: undefined,\n voided: false,\n getObject: function getObject() {\n return this.mapper.getObject(this.obs);\n },\n getControlId: function getControlId() {\n return this.control && this.control.id;\n },\n getEventScripts: function getEventScripts() {\n return this.control && this.control.events;\n },\n getConceptName: function getConceptName() {\n return this.control && this.control.concept && this.control.concept.name;\n },\n getConceptType: function getConceptType() {\n return this.control && this.control.type;\n },\n getLabelName: function getLabelName() {\n return this.control && (this.control.value || this.control.label.value);\n },\n setValue: function setValue(value) {\n if (this.valueMapper) {\n return this.valueMapper.setValue(this.control, value);\n }\n return value;\n },\n getValue: function getValue() {\n var value = this.value.value;\n if (this.valueMapper) {\n return this.valueMapper.getValue(this.control, value);\n }\n return value;\n },\n remove: function remove(formFieldPath) {\n function findIfNodeHasDataSourceWithValueInDatabase(parent) {\n if (parent.dataSource.uuid || parent.dataSource.obsList && parent.dataSource.obsList.find(function (o) {\n return o.uuid !== undefined;\n })) return true;\n\n if (parent.children) {\n for (var i = 0; i < parent.children.size; i++) {\n if (findIfNodeHasDataSourceWithValueInDatabase(parent.children.get(i))) return true;\n }\n }\n return false;\n }\n if (this.children) {\n var updatedChildren = this.children.filter(function (child) {\n return child.formFieldPath !== formFieldPath;\n });\n if (updatedChildren.size === this.children.size) {\n updatedChildren = this.children.map(function (child) {\n return child.remove(formFieldPath);\n });\n } else {\n var removedChild = this.children.find(function (child) {\n return child.formFieldPath === formFieldPath;\n });\n if (findIfNodeHasDataSourceWithValueInDatabase(removedChild) && removedChild) {\n var voidedChildRecord = removedChild.set('active', false).set('voided', true).voidChildRecords();\n if (voidedChildRecord.dataSource.obsList) {\n var newDataSource = voidedChildRecord.dataSource.set('obsList', voidedChildRecord.dataSource.obsList.map(function (o) {\n return o.set('voided', true);\n }));\n voidedChildRecord = voidedChildRecord.set('dataSource', newDataSource);\n }\n updatedChildren = updatedChildren.insert(updatedChildren.size, voidedChildRecord);\n }\n }\n return this.set('children', updatedChildren);\n }\n return this;\n },\n update: function update(formFieldPath, value, errors) {\n if (this.formFieldPath === formFieldPath) {\n return this.set('value', value).set('errors', errors);\n }\n\n if (this.children) {\n var childRecord = this.children.map(function (r) {\n return r.update(formFieldPath, value, errors) || r;\n });\n return this.set('children', childRecord);\n }\n return null;\n },\n voidChildRecords: function voidChildRecords() {\n if (this.children) {\n var childRecord = this.children.map(function (record) {\n return record.voidChildRecords();\n });\n return this.set('children', childRecord);\n }\n return this.set('errors', []).set('voided', true);\n },\n removeObsUuidsInDataSource: function removeObsUuidsInDataSource() {\n if (this.dataSource && this.active) {\n var newRecord = this;\n if (this.dataSource.uuid) {\n var newDataSource = this.dataSource.set('uuid', undefined);\n newRecord = this.set('dataSource', newDataSource);\n }\n if (this.dataSource.obsList) {\n var newObsList = this.dataSource.obsList.map(function (ol) {\n return ol.set('uuid', undefined);\n });\n var _newDataSource = this.dataSource.set('obsList', newObsList);\n newRecord = this.set('dataSource', _newDataSource);\n }\n if (this.children) {\n var newChildren = this.children.map(function (child) {\n return child.removeObsUuidsInDataSource();\n });\n newRecord = newRecord.set('children', newChildren);\n }\n return newRecord;\n }\n return this;\n },\n getErrors: function getErrors() {\n var _this = this;\n\n var errorArray = [];\n var errors = this.get('errors');\n if (!errors) {\n return errorArray;\n }\n var filteredErrors = errors.filter(function (err) {\n return err.type === _constants2.default.errorTypes.error;\n });\n var filteredMandatoryErrors = filteredErrors.filter(function (err) {\n return err.message !== _constants2.default.validations.mandatory || err.message === _constants2.default.validations.mandatory && _this.enabled && !_this.hidden;\n });\n if (errors && !(0, _isEmpty2.default)(filteredMandatoryErrors)) {\n errorArray.push(filteredMandatoryErrors);\n }\n\n if (this.children) {\n return errorArray.concat.apply(errorArray, _toConsumableArray(this.children.map(function (r) {\n return r.getErrors();\n })));\n }\n\n return errorArray;\n },\n getActive: function getActive() {\n if (this.active) {\n if (this.children) {\n var activeRecords = this.set('children', this.children.filter(function (r) {\n return r.active;\n }));\n\n var updatedActiveChildren = activeRecords.children.map(function (child) {\n if (child.children) {\n return child.getActive();\n }\n return child;\n });\n return activeRecords.set('children', updatedActiveChildren);\n }\n return this;\n }\n return null;\n }\n});\n\nvar ControlRecordTreeBuilder = function () {\n function ControlRecordTreeBuilder() {\n _classCallCheck(this, ControlRecordTreeBuilder);\n }\n\n _createClass(ControlRecordTreeBuilder, [{\n key: 'getRecords',\n value: function getRecords(controls, formName, formVersion, currentLayerObs, allObs, parentFormFieldPath) {\n var _this2 = this;\n\n var recordList = new _immutable.List();\n controls.forEach(function (control) {\n var mapper = _MapperStore2.default.getMapper(control);\n var obsArray = mapper.getInitialObject(formName, formVersion, control, currentLayerObs, allObs, parentFormFieldPath);\n obsArray.forEach(function (data) {\n var record = new ControlRecord({\n valueMapper: _ValueMapperStore2.default.getMapper(control),\n active: !data.inactive,\n formFieldPath: data.formFieldPath,\n value: mapper.getValue(data),\n dataSource: data,\n control: control,\n showAddMore: true,\n children: control.controls && _this2.getRecords(control.controls, formName, formVersion, mapper.getChildren(data), allObs, (0, _ControlUtil.isAnyAncestorOrControlHasAddMore)(control, parentFormFieldPath) ? data.formFieldPath : (0, _ControlUtil.getCurrentFormFieldPathIfAddMore)(formName, formVersion, control, parentFormFieldPath))\n });\n\n recordList = recordList.push(record);\n });\n });\n return recordList;\n }\n }, {\n key: 'parseObs',\n value: function parseObs(obs) {\n var _this3 = this;\n\n var newObs = new _Obs.Obs(_extends({}, obs));\n if (obs.groupMembers) {\n newObs = newObs.set('groupMembers', newObs.groupMembers.map(function (gm) {\n return _this3.parseObs(gm);\n }));\n }\n return newObs;\n }\n }, {\n key: 'build',\n value: function build(metadata, observation) {\n var _this4 = this;\n\n var immutableObservations = observation.map(function (obs) {\n return _this4.parseObs(obs);\n });\n var records = this.getRecords(metadata.controls, metadata.name, metadata.version, immutableObservations, immutableObservations);\n return new ControlRecord({ children: records });\n }\n }]);\n\n return ControlRecordTreeBuilder;\n}();\n\nexports.default = ControlRecordTreeBuilder;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ControlRecordTreeBuilder.js\n// module id = 171\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ControlRecordTreeBuilder.js?");
|
||
|
||
/***/ }),
|
||
/* 172 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright (c) 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(function (global, factory) {\n true ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.Immutable = factory());\n}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n\n createClass(KeyedIterable, Iterable);\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n\n createClass(IndexedIterable, Iterable);\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n\n createClass(SetIterable, Iterable);\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n\n\n function isIterable(maybeIterable) {\n return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]);\n }\n\n function isKeyed(maybeKeyed) {\n return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]);\n }\n\n function isIndexed(maybeIndexed) {\n return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]);\n }\n\n function isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n }\n\n function isOrdered(maybeOrdered) {\n return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]);\n }\n\n Iterable.isIterable = isIterable;\n Iterable.isKeyed = isKeyed;\n Iterable.isIndexed = isIndexed;\n Iterable.isAssociative = isAssociative;\n Iterable.isOrdered = isOrdered;\n\n Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\n\n\n var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n // Used for setting prototype methods that IE8 chokes on.\n var DELETE = 'delete';\n\n // Constants describing the size of trie nodes.\n var SHIFT = 5; // Resulted in best performance after ______?\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1;\n\n // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n var NOT_SET = {};\n\n // Boolean references, Rough equivalent of `bool &`.\n var CHANGE_LENGTH = { value: false };\n var DID_ALTER = { value: false };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\n }\n\n // A function which returns a value representing an \"owner\" for transient writes\n // to tries. The return value will only ever equal itself, and will not equal\n // the return of any subsequent call of this function.\n function OwnerID() {}\n\n // http://jsperf.com/copy-array-inline\n function arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n }\n\n function wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n }\n\n function returnTrue() {\n return true;\n }\n\n function wholeSlice(begin, end, size) {\n return (begin === 0 || (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size));\n }\n\n function resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n }\n\n function resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n }\n\n function resolveIndex(index, size, defaultIndex) {\n return index === undefined ?\n defaultIndex :\n index < 0 ?\n Math.max(0, size + index) :\n size === undefined ?\n index :\n Math.min(size, index);\n }\n\n /* global Symbol */\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function() {\n return '[Iterator]';\n };\n\n\n Iterator.KEYS = ITERATE_KEYS;\n Iterator.VALUES = ITERATE_VALUES;\n Iterator.ENTRIES = ITERATE_ENTRIES;\n\n Iterator.prototype.inspect =\n Iterator.prototype.toSource = function () { return this.toString(); }\n Iterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n };\n\n\n function iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult ? (iteratorResult.value = value) : (iteratorResult = {\n value: value, done: false\n });\n return iteratorResult;\n }\n\n function iteratorDone() {\n return { value: undefined, done: true };\n }\n\n function hasIterator(maybeIterable) {\n return !!getIteratorFn(maybeIterable);\n }\n\n function isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n }\n\n function getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n }\n\n function getIteratorFn(iterable) {\n var iteratorFn = iterable && (\n (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]\n );\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n function isArrayLike(value) {\n return value && typeof value.length === 'number';\n }\n\n createClass(Seq, Iterable);\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() :\n isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function(/*...values*/) {\n return Seq(arguments);\n };\n\n Seq.prototype.toSeq = function() {\n return this;\n };\n\n Seq.prototype.toString = function() {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function() {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n\n\n createClass(KeyedSeq, Seq);\n function KeyedSeq(value) {\n return value === null || value === undefined ?\n emptySequence().toKeyedSeq() :\n isIterable(value) ?\n (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) :\n keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function() {\n return this;\n };\n\n\n\n createClass(IndexedSeq, Seq);\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function(/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function() {\n return this;\n };\n\n IndexedSeq.prototype.toString = function() {\n return this.__toString('Seq [', ']');\n };\n\n IndexedSeq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, false);\n };\n\n IndexedSeq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, false);\n };\n\n\n\n createClass(SetSeq, Seq);\n function SetSeq(value) {\n return (\n value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value\n ).toSetSeq();\n }\n\n SetSeq.of = function(/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function() {\n return this;\n };\n\n\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n\n\n\n createClass(ArraySeq, IndexedSeq);\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n ArraySeq.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function(fn, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ArraySeq.prototype.__iterator = function(type, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n var ii = 0;\n return new Iterator(function() \n {return ii > maxIndex ?\n iteratorDone() :\n iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])}\n );\n };\n\n\n\n createClass(ObjectSeq, KeyedSeq);\n function ObjectSeq(object) {\n var keys = Object.keys(object);\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n ObjectSeq.prototype.get = function(key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function(key) {\n return this._object.hasOwnProperty(key);\n };\n\n ObjectSeq.prototype.__iterate = function(fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ObjectSeq.prototype.__iterator = function(type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var key = keys[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(IterableSeq, IndexedSeq);\n function IterableSeq(iterable) {\n this._iterable = iterable;\n this.size = iterable.length || iterable.size;\n }\n\n IterableSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n IterableSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n\n\n createClass(IteratorSeq, IndexedSeq);\n function IteratorSeq(iterator) {\n this._iterator = iterator;\n this._iteratorCache = [];\n }\n\n IteratorSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n var step;\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n if (fn(val, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n\n IteratorSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n return new Iterator(function() {\n if (iterations >= cache.length) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n cache[iterations] = step.value;\n }\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n };\n\n\n\n\n // # pragma Helper functions\n\n function isSeq(maybeSeq) {\n return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]);\n }\n\n var EMPTY_SEQ;\n\n function emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n }\n\n function keyedSeqFromValue(value) {\n var seq =\n Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() :\n isIterator(value) ? new IteratorSeq(value).fromEntrySeq() :\n hasIterator(value) ? new IterableSeq(value).fromEntrySeq() :\n typeof value === 'object' ? new ObjectSeq(value) :\n undefined;\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of [k, v] entries, '+\n 'or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values: ' + value\n );\n }\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) ||\n (typeof value === 'object' && new ObjectSeq(value));\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values, or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return (\n isArrayLike(value) ? new ArraySeq(value) :\n isIterator(value) ? new IteratorSeq(value) :\n hasIterator(value) ? new IterableSeq(value) :\n undefined\n );\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n return ii;\n }\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var entry = cache[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ?\n fromJSWith(converter, json, '', {'': json}) :\n fromJSDefault(json);\n }\n\n function fromJSWith(converter, json, key, parentJSON) {\n if (Array.isArray(json)) {\n return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\n }\n\n /**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if the it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections implement `equals` and `hashCode`.\n *\n */\n function is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n if (typeof valueA.equals === 'function' &&\n typeof valueB.equals === 'function' &&\n valueA.equals(valueB)) {\n return true;\n }\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isIterable(b) ||\n a.size !== undefined && b.size !== undefined && a.size !== b.size ||\n a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return b.every(function(v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done;\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function(v, k) {\n if (notAssociative ? !a.has(v) :\n flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n }\n\n createClass(Repeat, IndexedSeq);\n\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function() {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function(searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function(begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size) ? this :\n new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size));\n };\n\n Repeat.prototype.reverse = function() {\n return this;\n };\n\n Repeat.prototype.indexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function(fn, reverse) {\n for (var ii = 0; ii < this.size; ii++) {\n if (fn(this._value, ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this;\n var ii = 0;\n return new Iterator(function() \n {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()}\n );\n };\n\n Repeat.prototype.equals = function(other) {\n return other instanceof Repeat ?\n is(this._value, other._value) :\n deepEqual(other);\n };\n\n\n var EMPTY_REPEAT;\n\n function invariant(condition, error) {\n if (!condition) throw new Error(error);\n }\n\n createClass(Range, IndexedSeq);\n\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function() {\n if (this.size === 0) {\n return 'Range []';\n }\n return 'Range [ ' +\n this._start + '...' + this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]';\n };\n\n Range.prototype.get = function(index, notSetValue) {\n return this.has(index) ?\n this._start + wrapIndex(this, index) * this._step :\n notSetValue;\n };\n\n Range.prototype.includes = function(searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex);\n };\n\n Range.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(this.get(begin, this._end), this.get(end, this._end), this._step);\n };\n\n Range.prototype.indexOf = function(searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function(searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function(fn, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n value += reverse ? -step : step;\n }\n return ii;\n };\n\n Range.prototype.__iterator = function(type, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n var ii = 0;\n return new Iterator(function() {\n var v = value;\n value += reverse ? -step : step;\n return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v);\n });\n };\n\n Range.prototype.equals = function(other) {\n return other instanceof Range ?\n this._start === other._start &&\n this._end === other._end &&\n this._step === other._step :\n deepEqual(this, other);\n };\n\n\n var EMPTY_RANGE;\n\n createClass(Collection, Iterable);\n function Collection() {\n throw TypeError('Abstract');\n }\n\n\n createClass(KeyedCollection, Collection);function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);function IndexedCollection() {}\n\n createClass(SetCollection, Collection);function SetCollection() {}\n\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n\n var imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ?\n Math.imul :\n function imul(a, b) {\n a = a | 0; // int\n b = b | 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int\n };\n\n // v8 has an optimization for storing 31-bit signed numbers.\n // Values which have either 00 or 11 as the high order bits qualify.\n // This function drops the highest order bit in a signed number, maintaining\n // the sign bit.\n function smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF);\n }\n\n function hash(o) {\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n if (o === true) {\n return 1;\n }\n var type = typeof o;\n if (type === 'number') {\n if (o !== o || o === Infinity) {\n return 0;\n }\n var h = o | 0;\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n return smi(h);\n }\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n if (type === 'object') {\n return hashJSObj(o);\n }\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n if (hash === undefined) {\n hash = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n return hash;\n }\n\n // http://jsperf.com/hashing-strings\n function hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hash = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n if (objHashUID & 0x40000000) {\n objHashUID = 0;\n }\n\n if (usingWeakMap) {\n weakMap.set(obj, hash);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n 'enumerable': false,\n 'configurable': false,\n 'writable': false,\n 'value': hash\n });\n } else if (obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments);\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hash;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hash;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hash;\n }\n\n // Get references to ES5 object methods.\n var isExtensible = Object.isExtensible;\n\n // True if Object.defineProperty works as expected. IE8 fails this test.\n var canDefineProperty = (function() {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n }());\n\n // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n // and avoid memory leaks from the IE cloneNode bug.\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n }\n\n // If possible, use a WeakMap.\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n\n var UID_HASH_KEY = '__immutablehash__';\n if (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n }\n\n var STRING_HASH_CACHE_MIN_STRLEN = 16;\n var STRING_HASH_CACHE_MAX_SIZE = 255;\n var STRING_HASH_CACHE_SIZE = 0;\n var stringHashCache = {};\n\n function assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n }\n\n createClass(Map, KeyedCollection);\n\n // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() :\n isMap(value) && !isOrdered(value) ? value :\n emptyMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n Map.of = function() {var keyValues = SLICE$0.call(arguments, 0);\n return emptyMap().withMutations(function(map ) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function() {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function(k, notSetValue) {\n return this._root ?\n this._root.get(0, undefined, k, notSetValue) :\n notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function(k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.setIn = function(keyPath, v) {\n return this.updateIn(keyPath, NOT_SET, function() {return v});\n };\n\n Map.prototype.remove = function(k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteIn = function(keyPath) {\n return this.updateIn(keyPath, function() {return NOT_SET});\n };\n\n Map.prototype.update = function(k, notSetValue, updater) {\n return arguments.length === 1 ?\n k(this) :\n this.updateIn([k], notSetValue, updater);\n };\n\n Map.prototype.updateIn = function(keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeepMap(\n this,\n forceIterator(keyPath),\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.merge = function(/*...iters*/) {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.merge === 'function' ?\n m.merge.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.mergeDeep === 'function' ?\n m.mergeDeep.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.sort = function(comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n // @pragma Mutability\n\n Map.prototype.withMutations = function(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n };\n\n Map.prototype.asMutable = function() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n };\n\n Map.prototype.asImmutable = function() {\n return this.__ensureOwner();\n };\n\n Map.prototype.wasAltered = function() {\n return this.__altered;\n };\n\n Map.prototype.__iterator = function(type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n this._root && this._root.iterate(function(entry ) {\n iterations++;\n return fn(entry[1], entry[0], this$0);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn;\n\n\n // #pragma Trie Nodes\n\n\n\n function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n }\n\n ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n };\n\n\n\n\n function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n }\n\n BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK));\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue :\n this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue);\n };\n\n BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit;\n var newNodes = exists ? newNode ?\n setIn(nodes, idx, newNode, isEditable) :\n spliceOut(nodes, idx, isEditable) :\n spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n };\n\n\n\n\n function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n }\n\n HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue;\n };\n\n HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n };\n\n\n\n\n function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n }\n\n HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n };\n\n\n\n\n function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n }\n\n ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n };\n\n ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n };\n\n\n\n // #pragma Iterators\n\n ArrayMapNode.prototype.iterate =\n HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n }\n\n BitmapIndexedNode.prototype.iterate =\n HashArrayMapNode.prototype.iterate = function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n }\n\n ValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n }\n\n createClass(MapIterator, Iterator);\n\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n MapIterator.prototype.next = function() {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]);\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n\n function mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n }\n\n function mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev\n };\n }\n\n function makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_MAP;\n function emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n }\n\n function updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef(CHANGE_LENGTH);\n var didAlter = MakeRef(DID_ALTER);\n newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter);\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n }\n\n function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter);\n }\n\n function isLeafNode(node) {\n return node.constructor === ValueNode || node.constructor === HashCollisionNode;\n }\n\n function mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes = idx1 === idx2 ?\n [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] :\n ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n }\n\n function createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n }\n\n function packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n }\n\n function expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n }\n\n function mergeIntoMapWith(map, merger, iterables) {\n var iters = [];\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ?\n existing.mergeDeep(value) :\n is(existing, value) ? existing : value;\n }\n\n function deepMergerWith(merger) {\n return function(existing, value, key) {\n if (existing && existing.mergeDeepWith && isIterable(value)) {\n return existing.mergeDeepWith(merger, value);\n }\n var nextValue = merger(existing, value, key);\n return is(existing, nextValue) ? existing : nextValue;\n };\n }\n\n function mergeIntoCollectionWith(collection, merger, iters) {\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return collection;\n }\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function(collection ) {\n var mergeIntoMap = merger ?\n function(value, key) {\n collection.update(key, NOT_SET, function(existing )\n {return existing === NOT_SET ? value : merger(existing, value, key)}\n );\n } :\n function(value, key) {\n collection.set(key, value);\n }\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoMap);\n }\n });\n }\n\n function updateInDeepMap(existing, keyPathIter, notSetValue, updater) {\n var isNotSet = existing === NOT_SET;\n var step = keyPathIter.next();\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n invariant(\n isNotSet || (existing && existing.set),\n 'invalid keyPath'\n );\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(\n nextExisting,\n keyPathIter,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting ? existing :\n nextUpdated === NOT_SET ? existing.remove(key) :\n (isNotSet ? emptyMap() : existing).set(key, nextUpdated);\n }\n\n function popCount(x) {\n x = x - ((x >> 1) & 0x55555555);\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x = x + (x >> 8);\n x = x + (x >> 16);\n return x & 0x7f;\n }\n\n function setIn(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n }\n\n function spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n }\n\n var MAX_ARRAY_MAP_SIZE = SIZE / 4;\n var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\n var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\n createClass(List, IndexedCollection);\n\n // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n if (value === null || value === undefined) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedIterable(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function(list ) {\n list.setSize(size);\n iter.forEach(function(v, i) {return list.set(i, v)});\n });\n }\n\n List.of = function(/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function() {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function(index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function(index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function(index) {\n return !this.has(index) ? this :\n index === 0 ? this.shift() :\n index === this.size - 1 ? this.pop() :\n this.splice(index, 1);\n };\n\n List.prototype.insert = function(index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function(/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function(list ) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function() {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function(/*...values*/) {\n var values = arguments;\n return this.withMutations(function(list ) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function() {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.merge = function(/*...iters*/) {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, deepMergerWith(merger), iters);\n };\n\n List.prototype.setSize = function(size) {\n return setListBounds(this, 0, size);\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function(begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function(type, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n return new Iterator(function() {\n var value = values();\n return value === DONE ?\n iteratorDone() :\n iteratorValue(type, index++, value);\n });\n };\n\n List.prototype.__iterate = function(fn, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn =\n ListPrototype.removeIn = MapPrototype.removeIn;\n ListPrototype.update = MapPrototype.update;\n ListPrototype.updateIn = MapPrototype.updateIn;\n ListPrototype.mergeIn = MapPrototype.mergeIn;\n ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n ListPrototype.withMutations = MapPrototype.withMutations;\n ListPrototype.asMutable = MapPrototype.asMutable;\n ListPrototype.asImmutable = MapPrototype.asImmutable;\n ListPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n\n function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n }\n\n // TODO: seems like these methods are very similar\n\n VNode.prototype.removeBefore = function(ownerID, level, index) {\n if (index === level ? 1 << level : 0 || this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n };\n\n VNode.prototype.removeAfter = function(ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n };\n\n\n\n var DONE = {};\n\n function iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ?\n iterateLeaf(node, offset) :\n iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n do {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx], level - SHIFT, offset + (idx << level)\n );\n } while (true);\n };\n }\n }\n\n function makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n }\n\n var EMPTY_LIST;\n function emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n }\n\n function updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function(list ) {\n index < 0 ?\n setListBounds(list, index).set(0, value) :\n setListBounds(list, 0, index + 1).set(index, value)\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter);\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n }\n\n function updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter);\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n SetRef(didAlter);\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n }\n\n function listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n }\n\n function setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n end = end | 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner);\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ?\n listNodeFor(list, newCapacity - 1) :\n newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail;\n\n // Merge Tail into tree.\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if (beginIndex !== (newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift);\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\n return mergeIntoCollectionWith(list, merger, iters);\n }\n\n function getTailOffset(size) {\n return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT);\n }\n\n createClass(OrderedMap, Map);\n\n // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() :\n isOrderedMap(value) ? value :\n emptyOrderedMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n OrderedMap.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function() {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function(k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function(k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function(k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.wasAltered = function() {\n return this._map.wasAltered() || this._list.wasAltered();\n };\n\n OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._list.__iterate(\n function(entry ) {return entry && fn(entry[1], entry[0], this$0)},\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function(type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = true;\n OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\n\n\n function makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n return omap;\n }\n\n var EMPTY_ORDERED_MAP;\n function emptyOrderedMap() {\n return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()));\n }\n\n function updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) { // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx});\n newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else {\n if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n ToKeyedSequence.prototype.get = function(key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function(key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function() {var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()};\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)};\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var ii;\n return this._iter.__iterate(\n this._useKeys ?\n function(v, k) {return fn(v, k, this$0)} :\n ((ii = reverse ? resolveSize(this) : 0),\n function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}),\n reverse\n );\n };\n\n ToKeyedSequence.prototype.__iterator = function(type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(ToIndexedSequence, IndexedSeq);\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToIndexedSequence.prototype.includes = function(value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, iterations++, step.value, step)\n });\n };\n\n\n\n createClass(ToSetSequence, SetSeq);\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToSetSequence.prototype.has = function(key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, step.value, step.value, step);\n });\n };\n\n\n\n createClass(FromEntriesSequence, KeyedSeq);\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n FromEntriesSequence.prototype.entrySeq = function() {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(entry ) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return fn(\n indexedIterable ? entry.get(1) : entry[1],\n indexedIterable ? entry.get(0) : entry[0],\n this$0\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(\n type,\n indexedIterable ? entry.get(0) : entry[0],\n indexedIterable ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n\n ToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n flipSequence.flip = function() {return iterable};\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function() {return iterable.reverse()};\n return reversedSequence;\n };\n flipSequence.has = function(key ) {return iterable.includes(key)};\n flipSequence.includes = function(key ) {return iterable.has(key)};\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse);\n }\n flipSequence.__iteratorUncached = function(type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return iterable.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n }\n return flipSequence;\n }\n\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n mappedSequence.has = function(key ) {return iterable.has(key)};\n mappedSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ?\n notSetValue :\n mapper.call(context, v, key, iterable);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(\n function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false},\n reverse\n );\n }\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, iterable),\n step\n );\n });\n }\n return mappedSequence;\n }\n\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n reversedSequence.reverse = function() {return iterable};\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n flipSequence.reverse = function() {return iterable.flip()};\n return flipSequence;\n };\n }\n reversedSequence.get = function(key, notSetValue) \n {return iterable.get(useKeys ? key : -1 - key, notSetValue)};\n reversedSequence.has = function(key )\n {return iterable.has(useKeys ? key : -1 - key)};\n reversedSequence.includes = function(value ) {return iterable.includes(value)};\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse);\n };\n reversedSequence.__iterator =\n function(type, reverse) {return iterable.__iterator(type, !reverse)};\n return reversedSequence;\n }\n\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n if (useKeys) {\n filterSequence.has = function(key ) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, iterable);\n };\n filterSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, iterable) ?\n v : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n }\n return filterSequence;\n }\n\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n 0,\n function(a ) {return a + 1}\n );\n });\n return groups.asImmutable();\n }\n\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)}\n );\n });\n var coerce = iterableClass(iterable);\n return groups.map(function(arr ) {return reify(iterable, coerce(arr))});\n }\n\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size;\n\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n if (end === Infinity) {\n end = originalSize;\n } else {\n end = end | 0;\n }\n }\n\n if (wholeSlice(begin, end, originalSize)) {\n return iterable;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this iterable's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable);\n\n // If iterable.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined;\n\n if (!useKeys && isSeq(iterable) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize ?\n iterable.get(index + resolvedBegin, notSetValue) :\n notSetValue;\n }\n }\n\n sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0) !== false &&\n iterations !== sliceSize;\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function(type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function() {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n } else {\n return iteratorValue(type, iterations - 1, step.value[1], step);\n }\n });\n }\n\n return sliceSeq;\n }\n\n\n function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n iterable.__iterate(function(v, k, c) \n {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)}\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function() {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n }\n\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function() {\n var step, k, v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n } else {\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$0));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n }\n\n\n function concatFactory(iterable, values) {\n var isKeyedIterable = isKeyed(iterable);\n var iters = [iterable].concat(values).map(function(v ) {\n if (!isIterable(v)) {\n v = isKeyedIterable ?\n keyedSeqFromValue(v) :\n indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n return v;\n }).filter(function(v ) {return v.size !== 0});\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (singleton === iterable ||\n isKeyedIterable && isKeyed(singleton) ||\n isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(\n function(sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n },\n 0\n );\n return concatSeq;\n }\n\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n flatSequence.__iterateUncached = function(fn, reverse) {\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {var this$0 = this;\n iter.__iterate(function(v, k) {\n if ((!depth || currentDepth < depth) && isIterable(v)) {\n flatDeep(v, currentDepth + 1);\n } else if (fn(v, useKeys ? k : iterations++, this$0) === false) {\n stopped = true;\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(iterable, 0);\n return iterations;\n }\n flatSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function() {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isIterable(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n }\n return flatSequence;\n }\n\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(\n function(v, k) {return coerce(mapper.call(context, v, k, iterable))}\n ).flatten(true);\n }\n\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 -1;\n interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k) \n {return (!iterations || fn(separator, iterations++, this$0) !== false) &&\n fn(v, iterations++, this$0) !== false},\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function() {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2 ?\n iteratorValue(type, iterations++, separator) :\n iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n }\n\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(\n function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]}\n ).toArray();\n entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach(\n isKeyedIterable ?\n function(v, i) { entries[i].length = 2; } :\n function(v, i) { entries[i] = v[1]; }\n );\n return isKeyedIterable ? KeyedSeq(entries) :\n isIndexed(iterable) ? IndexedSeq(entries) :\n SetSeq(entries);\n }\n\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = iterable.toSeq()\n .map(function(v, k) {return [v, mapper(v, k, iterable)]})\n .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a});\n return entry && entry[0];\n } else {\n return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a});\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0;\n }\n\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function(fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function(type, reverse) {\n var iterators = iters.map(function(i )\n {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))}\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function() {\n var steps;\n if (!isDone) {\n steps = iterators.map(function(i ) {return i.next()});\n isDone = steps.some(function(s ) {return s.done});\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(null, steps.map(function(s ) {return s.value}))\n );\n });\n };\n return zipSequence\n }\n\n\n // #pragma Helper Functions\n\n function reify(iter, seq) {\n return isSeq(iter) ? seq : iter.constructor(seq);\n }\n\n function validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n }\n\n function resolveSize(iter) {\n assertNotInfinite(iter.size);\n return ensureSize(iter);\n }\n\n function iterableClass(iterable) {\n return isKeyed(iterable) ? KeyedIterable :\n isIndexed(iterable) ? IndexedIterable :\n SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create(\n (\n isKeyed(iterable) ? KeyedSeq :\n isIndexed(iterable) ? IndexedSeq :\n SetSeq\n ).prototype\n );\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n } else {\n return Seq.prototype.cacheResult.call(this);\n }\n }\n\n function defaultComparator(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n }\n\n function forceIterator(keyPath) {\n var iter = getIterator(keyPath);\n if (!iter) {\n // Array might not be iterable in this environment, so we need a fallback\n // to our wrapped type.\n if (!isArrayLike(keyPath)) {\n throw new TypeError('Expected iterable or array-like: ' + keyPath);\n }\n iter = getIterator(Iterable(keyPath));\n }\n return iter;\n }\n\n createClass(Record, KeyedCollection);\n\n function Record(defaultValues, name) {\n var hasInitialized;\n\n var RecordType = function Record(values) {\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n setProps(RecordTypePrototype, keys);\n RecordTypePrototype.size = keys.length;\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n }\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n\n return RecordType;\n }\n\n Record.prototype.toString = function() {\n return this.__toString(recordName(this) + ' {', '}');\n };\n\n // @pragma Access\n\n Record.prototype.has = function(k) {\n return this._defaultValues.hasOwnProperty(k);\n };\n\n Record.prototype.get = function(k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n };\n\n // @pragma Modification\n\n Record.prototype.clear = function() {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\n var RecordType = this.constructor;\n return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap()));\n };\n\n Record.prototype.set = function(k, v) {\n if (!this.has(k)) {\n throw new Error('Cannot set unknown key \"' + k + '\" on ' + recordName(this));\n }\n if (this._map && !this._map.has(k)) {\n var defaultVal = this._defaultValues[k];\n if (v === defaultVal) {\n return this;\n }\n }\n var newMap = this._map && this._map.set(k, v);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function(k) {\n if (!this.has(k)) {\n return this;\n }\n var newMap = this._map && this._map.remove(k);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Record.prototype.__iterator = function(type, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return makeRecord(this, newMap, ownerID);\n };\n\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn =\n RecordPrototype.removeIn = MapPrototype.removeIn;\n RecordPrototype.merge = MapPrototype.merge;\n RecordPrototype.mergeWith = MapPrototype.mergeWith;\n RecordPrototype.mergeIn = MapPrototype.mergeIn;\n RecordPrototype.mergeDeep = MapPrototype.mergeDeep;\n RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith;\n RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n RecordPrototype.setIn = MapPrototype.setIn;\n RecordPrototype.update = MapPrototype.update;\n RecordPrototype.updateIn = MapPrototype.updateIn;\n RecordPrototype.withMutations = MapPrototype.withMutations;\n RecordPrototype.asMutable = MapPrototype.asMutable;\n RecordPrototype.asImmutable = MapPrototype.asImmutable;\n\n\n function makeRecord(likeRecord, map, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._map = map;\n record.__ownerID = ownerID;\n return record;\n }\n\n function recordName(record) {\n return record._name || record.constructor.name || 'Record';\n }\n\n function setProps(prototype, names) {\n try {\n names.forEach(setProp.bind(undefined, prototype));\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function() {\n return this.get(name);\n },\n set: function(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection);\n\n // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() :\n isSet(value) && !isOrdered(value) ? value :\n emptySet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n Set.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n Set.prototype.toString = function() {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function(value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function(value) {\n return updateSet(this, this._map.set(value, true));\n };\n\n Set.prototype.remove = function(value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function() {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function(set ) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)});\n }\n });\n };\n\n Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (!iters.every(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (iters.some(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.merge = function() {\n return this.union.apply(this, arguments);\n };\n\n Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return this.union.apply(this, iters);\n };\n\n Set.prototype.sort = function(comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse);\n };\n\n Set.prototype.__iterator = function(type, reverse) {\n return this._map.map(function(_, k) {return k}).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\n\n var SetPrototype = Set.prototype;\n SetPrototype[IS_SET_SENTINEL] = true;\n SetPrototype[DELETE] = SetPrototype.remove;\n SetPrototype.mergeDeep = SetPrototype.merge;\n SetPrototype.mergeDeepWith = SetPrototype.mergeWith;\n SetPrototype.withMutations = MapPrototype.withMutations;\n SetPrototype.asMutable = MapPrototype.asMutable;\n SetPrototype.asImmutable = MapPrototype.asImmutable;\n\n SetPrototype.__empty = emptySet;\n SetPrototype.__make = makeSet;\n\n function updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map ? set :\n newMap.size === 0 ? set.__empty() :\n set.__make(newMap);\n }\n\n function makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_SET;\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set);\n\n // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() :\n isOrderedSet(value) ? value :\n emptyOrderedSet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n OrderedSet.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function() {\n return this.__toString('OrderedSet {', '}');\n };\n\n\n function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\n\n OrderedSetPrototype.__empty = emptyOrderedSet;\n OrderedSetPrototype.__make = makeOrderedSet;\n\n function makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_ORDERED_SET;\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection);\n\n // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() :\n isStack(value) ? value :\n emptyStack().unshiftAll(value);\n }\n\n Stack.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function() {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function(index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function() {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function(/*...values*/) {\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function(iter) {\n iter = IndexedIterable(iter);\n if (iter.size === 0) {\n return this;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.reverse().forEach(function(value ) {\n newSize++;\n head = {\n value: value,\n next: head\n };\n });\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function() {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function(/*...values*/) {\n return this.push.apply(this, arguments);\n };\n\n Stack.prototype.unshiftAll = function(iter) {\n return this.pushAll(iter);\n };\n\n Stack.prototype.shift = function() {\n return this.pop.apply(this, arguments);\n };\n\n Stack.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function(fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function(type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function() {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\n\n var StackPrototype = Stack.prototype;\n StackPrototype[IS_STACK_SENTINEL] = true;\n StackPrototype.withMutations = MapPrototype.withMutations;\n StackPrototype.asMutable = MapPrototype.asMutable;\n StackPrototype.asImmutable = MapPrototype.asImmutable;\n StackPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n function makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_STACK;\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n\n /**\n * Contributes additional methods to a constructor\n */\n function mixin(ctor, methods) {\n var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n\n mixin(Iterable, {\n\n // ### Conversion to other types\n\n toArray: function() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n this.valueSeq().__iterate(function(v, i) { array[i] = v; });\n return array;\n },\n\n toIndexedSeq: function() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value}\n ).__toJS();\n },\n\n toJSON: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value}\n ).__toJS();\n },\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: function() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function(v, k) { object[k] = v; });\n return object;\n },\n\n toOrderedMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function() {\n return new ToSetSequence(this);\n },\n\n toSeq: function() {\n return isIndexed(this) ? this.toIndexedSeq() :\n isKeyed(this) ? this.toKeyedSeq() :\n this.toSetSeq();\n },\n\n toStack: function() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n\n // ### Common JavaScript methods and properties\n\n toString: function() {\n return '[Iterable]';\n },\n\n __toString: function(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function() {var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n\n includes: function(searchValue) {\n return this.some(function(value ) {return is(value, searchValue)});\n },\n\n entries: function() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function(v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n find: function(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function(v ) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\n this.__iterate(function(v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n });\n return reduction;\n },\n\n reduceRight: function(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function(predicate, context) {\n return !this.every(not(predicate), context);\n },\n\n sort: function(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n\n // ### More sequential methods\n\n butLast: function() {\n return this.slice(0, -1);\n },\n\n isEmpty: function() {\n return this.size !== undefined ? this.size === 0 : !this.some(function() {return true});\n },\n\n count: function(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function() {\n var iterable = this;\n if (iterable._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(iterable._cache);\n }\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function() {return iterable.toSeq()};\n return entriesSequence;\n },\n\n filterNot: function(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function() {\n return this.find(returnTrue);\n },\n\n flatMap: function(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function() {\n return new FromEntriesSequence(this);\n },\n\n get: function(searchKey, notSetValue) {\n return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue);\n },\n\n getIn: function(searchKeyPath, notSetValue) {\n var nested = this;\n // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n var iter = forceIterator(searchKeyPath);\n var step;\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n return nested;\n },\n\n groupBy: function(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: function(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n\n isSubset: function(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function(value ) {return iter.includes(value)});\n },\n\n isSuperset: function(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function(searchValue) {\n return this.findKey(function(value ) {return is(value, searchValue)});\n },\n\n keySeq: function() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function() {\n return this.toSeq().reverse().first();\n },\n\n lastKeyOf: function(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n\n minBy: function(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n\n rest: function() {\n return this.slice(1);\n },\n\n skip: function(amount) {\n return this.slice(Math.max(0, amount));\n },\n\n skipLast: function(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n\n takeWhile: function(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n\n\n // ### Hashable Object\n\n hashCode: function() {\n return this.__hash || (this.__hash = hashIterable(this));\n }\n\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n });\n\n // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n var IterablePrototype = Iterable.prototype;\n IterablePrototype[IS_ITERABLE_SENTINEL] = true;\n IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values;\n IterablePrototype.__toJS = IterablePrototype.toArray;\n IterablePrototype.__toStringMapper = quoteString;\n IterablePrototype.inspect =\n IterablePrototype.toSource = function() { return this.toString(); };\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes;\n\n mixin(KeyedIterable, {\n\n // ### More sequential methods\n\n flip: function() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function(mapper, context) {var this$0 = this;\n var iterations = 0;\n return reify(this,\n this.toSeq().map(\n function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)}\n ).fromEntrySeq()\n );\n },\n\n mapKeys: function(mapper, context) {var this$0 = this;\n return reify(this,\n this.toSeq().flip().map(\n function(k, v) {return mapper.call(context, k, v, this$0)}\n ).flip()\n );\n }\n\n });\n\n var KeyedIterablePrototype = KeyedIterable.prototype;\n KeyedIterablePrototype[IS_KEYED_SENTINEL] = true;\n KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries;\n KeyedIterablePrototype.__toJS = IterablePrototype.toObject;\n KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)};\n\n\n\n mixin(IndexedIterable, {\n\n // ### Conversion to other types\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, false);\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1 ?\n spliced :\n spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n\n // ### More collection methods\n\n findLastIndex: function(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function() {\n return this.get(0);\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function(index, notSetValue) {\n index = wrapIndex(this, index);\n return (index < 0 || (this.size === Infinity ||\n (this.size !== undefined && index > this.size))) ?\n notSetValue :\n this.find(function(_, key) {return key === index}, undefined, notSetValue);\n },\n\n has: function(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ?\n this.size === Infinity || index < this.size :\n this.indexOf(index) !== -1\n );\n },\n\n interpose: function(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function(/*...iterables*/) {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function() {\n return Range(0, this.size);\n },\n\n last: function() {\n return this.get(-1);\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function(/*, ...iterables */) {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n\n zipWith: function(zipper/*, ...iterables */) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n\n });\n\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n\n mixin(SetIterable, {\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function(value) {\n return this.has(value);\n },\n\n\n // ### More sequential methods\n\n keySeq: function() {\n return this.valueSeq();\n }\n\n });\n\n SetIterable.prototype.has = IterablePrototype.includes;\n SetIterable.prototype.contains = SetIterable.prototype.includes;\n\n\n // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype);\n\n\n // #pragma Helper functions\n\n function keyMapper(v, k) {\n return k;\n }\n\n function entryMapper(v, k) {\n return [k, v];\n }\n\n function not(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n }\n }\n\n function neg(predicate) {\n return function() {\n return -predicate.apply(this, arguments);\n }\n }\n\n function quoteString(value) {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n }\n\n function defaultZipper() {\n return arrCopy(arguments);\n }\n\n function defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n }\n\n function hashIterable(iterable) {\n if (iterable.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n var size = iterable.__iterate(\n keyed ?\n ordered ?\n function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } :\n function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } :\n ordered ?\n function(v ) { h = 31 * h + hash(v) | 0; } :\n function(v ) { h = h + hash(v) | 0; }\n );\n return murmurHashOfSize(size, h);\n }\n\n function murmurHashOfSize(size, h) {\n h = imul(h, 0xCC9E2D51);\n h = imul(h << 15 | h >>> -15, 0x1B873593);\n h = imul(h << 13 | h >>> -13, 5);\n h = (h + 0xE6546B64 | 0) ^ size;\n h = imul(h ^ h >>> 16, 0x85EBCA6B);\n h = imul(h ^ h >>> 13, 0xC2B2AE35);\n h = smi(h ^ h >>> 16);\n return h;\n }\n\n function hashMerge(a, b) {\n return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int\n }\n\n var Immutable = {\n\n Iterable: Iterable,\n\n Seq: Seq,\n Collection: Collection,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS\n\n };\n\n return Immutable;\n\n}));\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/immutable/dist/immutable.js\n// module id = 172\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/immutable/dist/immutable.js?");
|
||
|
||
/***/ }),
|
||
/* 173 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ObsMapper = __webpack_require__(174);\n\nvar _AbnormalObsGroupMapper = __webpack_require__(180);\n\nvar _ObsGroupMapper = __webpack_require__(181);\n\nvar _SectionMapper = __webpack_require__(184);\n\nvar _ObsListMapper = __webpack_require__(186);\n\nvar _TableMapper = __webpack_require__(189);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MapperStore = function () {\n function MapperStore() {\n _classCallCheck(this, MapperStore);\n }\n\n _createClass(MapperStore, [{\n key: 'getMapper',\n value: function getMapper(control) {\n if (control.type === 'obsControl' && control.properties.multiSelect) {\n return new _ObsListMapper.ObsListMapper();\n }\n\n if (control.type === 'obsGroupControl' && control.properties.abnormal) {\n return new _AbnormalObsGroupMapper.AbnormalObsGroupMapper();\n }\n\n if (control.type === 'obsGroupControl') {\n return new _ObsGroupMapper.ObsGroupMapper();\n }\n\n if (control.type === 'section') {\n return new _SectionMapper.SectionMapper();\n }\n\n if (control.type === 'table') {\n return new _TableMapper.TableMapper();\n }\n\n return new _ObsMapper.ObsMapper();\n }\n }]);\n\n return MapperStore;\n}();\n\nexports.default = new MapperStore();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/MapperStore.js\n// module id = 173\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/MapperStore.js?");
|
||
|
||
/***/ }),
|
||
/* 174 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsMapper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Obs = __webpack_require__(175);\n\nvar _lodash = __webpack_require__(179);\n\nvar _Util = __webpack_require__(169);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ObsMapper = exports.ObsMapper = function () {\n function ObsMapper() {\n _classCallCheck(this, ObsMapper);\n }\n\n _createClass(ObsMapper, [{\n key: 'getInitialObject',\n value: function getInitialObject(formName, formVersion, control, bahmniObservations, allObs, parentFormFieldPath) {\n return (0, _Obs.createObsFromControl)(formName, formVersion, control, bahmniObservations, parentFormFieldPath);\n }\n }, {\n key: 'getValue',\n value: function getValue(obs) {\n return { value: obs.value, comment: obs.comment, interpretation: obs.interpretation };\n }\n }, {\n key: 'getData',\n value: function getData(record) {\n var obs = (0, _lodash.cloneDeep)(record.dataSource).toJS();\n if (record.voided) {\n obs.uuid = record.dataSource.uuid;\n } else if (obs.formFieldPath !== record.formFieldPath) {\n obs.uuid = undefined;\n }\n obs.formFieldPath = record.formFieldPath;\n var value = record.voided ? undefined : record.value.value;\n if (typeof value === 'string') {\n value = value && value.trim() !== '' ? value.trim() : undefined;\n }\n obs.value = value;\n obs.comment = record.value.comment;\n obs.interpretation = record.value.interpretation;\n obs.voided = value === undefined;\n obs.inactive = !record.active;\n if (record.control.concept && _Util.Util.isComplexMediaConcept(record.control.concept)) {\n if (obs.voided && obs.formFieldPath.split('-')[1] !== '0') {\n return null;\n }\n if (!obs.voided) {\n obs.voided = obs.value.indexOf('voided') > 0;\n }\n }\n return obs.value === undefined && obs.uuid === undefined ? null : obs;\n }\n }, {\n key: 'getChildren',\n value: function getChildren() {\n return [];\n }\n }]);\n\n return ObsMapper;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/ObsMapper.js\n// module id = 174\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/mapper/ObsMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 175 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Obs = exports.ImmutableObs = undefined;\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 && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.obsFromMetadata = obsFromMetadata;\nexports.createObsFromControl = createObsFromControl;\n\nvar _immutable = __webpack_require__(172);\n\nvar _formNamespace = __webpack_require__(176);\n\nvar _flattenDeep = __webpack_require__(178);\n\nvar _flattenDeep2 = _interopRequireDefault(_flattenDeep);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable new-cap */\n\n\nvar ImmutableObs = exports.ImmutableObs = (0, _immutable.Record)({\n concept: undefined,\n uuid: undefined,\n value: undefined,\n observationDateTime: undefined,\n voided: false,\n inactive: false,\n comment: undefined,\n formNamespace: undefined,\n formFieldPath: undefined,\n groupMembers: undefined,\n interpretation: undefined\n});\n\nvar NUMERIC_DATATYPE = 'Numeric';\nvar ABNORMAL_CONCEPT_CLASS = 'Abnormal';\n\nvar Obs = exports.Obs = function (_ImmutableObs) {\n _inherits(Obs, _ImmutableObs);\n\n function Obs() {\n _classCallCheck(this, Obs);\n\n return _possibleConstructorReturn(this, (Obs.__proto__ || Object.getPrototypeOf(Obs)).apply(this, arguments));\n }\n\n _createClass(Obs, [{\n key: 'cloneForAddMore',\n value: function cloneForAddMore(formFieldPath, groupMembers) {\n return new Obs({\n formFieldPath: formFieldPath,\n concept: this.get('concept'),\n formNamespace: this.get('formNamespace'),\n voided: true,\n groupMembers: groupMembers\n });\n }\n }, {\n key: 'getUuid',\n value: function getUuid() {\n return this.get('uuid');\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.get('value');\n }\n }, {\n key: 'isDirty',\n value: function isDirty(value) {\n if (_typeof(this.get('value')) === 'object') {\n return this.get('value').uuid !== value.uuid;\n }\n return this.get('value') !== value;\n }\n }, {\n key: 'setValue',\n value: function setValue(value) {\n if (this.isDirty(value)) {\n return this.set('observationDateTime', null).set('value', value).set('voided', false);\n }\n return this;\n }\n }, {\n key: 'setComment',\n value: function setComment(comment) {\n return this.set('comment', comment);\n }\n }, {\n key: 'getComment',\n value: function getComment() {\n return this.get('comment');\n }\n }, {\n key: 'void',\n value: function _void() {\n return this.set('voided', true).set('value', undefined);\n }\n }, {\n key: 'isVoided',\n value: function isVoided() {\n return this.get('voided');\n }\n }, {\n key: 'getFormNamespace',\n value: function getFormNamespace() {\n return this.get('formNamespace');\n }\n }, {\n key: 'addGroupMember',\n value: function addGroupMember(obs) {\n var groupMembers = this.get('groupMembers');\n if (!groupMembers) {\n groupMembers = new _immutable.List();\n }\n if (groupMembers.includes(obs)) {\n return this;\n }\n var index = groupMembers.findIndex(function (o) {\n return o.formFieldPath === obs.formFieldPath;\n });\n\n if (index === -1) {\n return this.set('groupMembers', groupMembers.push(obs));\n }\n return this.setIn(['groupMembers', index], obs);\n }\n }, {\n key: 'getGroupMembers',\n value: function getGroupMembers() {\n return this.get('groupMembers');\n }\n }, {\n key: 'removeGroupMembers',\n value: function removeGroupMembers() {\n return this.set('groupMembers', undefined);\n }\n }, {\n key: 'setGroupMembers',\n value: function setGroupMembers(groupMembers) {\n return this.removeGroupMembers().set('groupMembers', groupMembers);\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric() {\n var concept = this.get('concept');\n if (concept && (concept.datatype === NUMERIC_DATATYPE || concept.dataType === NUMERIC_DATATYPE)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: 'getAbnormalChildObs',\n value: function getAbnormalChildObs() {\n return this.get('groupMembers').find(function (o) {\n return o.concept.conceptClass === ABNORMAL_CONCEPT_CLASS;\n });\n }\n }, {\n key: '_getGroupMembers',\n value: function _getGroupMembers(obsGroup) {\n var observations = [];\n if (obsGroup.groupMembers !== undefined) {\n obsGroup.groupMembers.forEach(function (obs) {\n observations.push(obs.getObject(obs));\n });\n }\n return (0, _flattenDeep2.default)(observations);\n }\n }, {\n key: 'getObject',\n value: function getObject(obsGroup) {\n var groupMembers = this._getGroupMembers(obsGroup);\n var updatedGroupMembers = (0, _isEmpty2.default)(groupMembers) ? undefined : groupMembers;\n return obsGroup.set('groupMembers', updatedGroupMembers).toJS();\n }\n }]);\n\n return Obs;\n}(ImmutableObs);\n/* eslint-disable new-cap */\n\nfunction obsFromMetadata(formNamespaceAndPath, metadata) {\n var formNamespace = formNamespaceAndPath.formNamespace,\n formFieldPath = formNamespaceAndPath.formFieldPath;\n\n return new Obs({\n concept: metadata.concept,\n formNamespace: formNamespace,\n formFieldPath: formFieldPath,\n voided: false\n });\n}\n\nfunction createObsFromControl(formName, formVersion, control) {\n var bahmniObservations = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n var parentFormFieldPath = arguments[4];\n\n var keyPrefix = (0, _formNamespace.getKeyPrefixForControl)(formName, formVersion, control.id, parentFormFieldPath);\n var observationsForControl = bahmniObservations.filter(function (observation) {\n return observation.formFieldPath.startsWith(keyPrefix.formFieldPath) && new RegExp(keyPrefix.formFieldPath + '[^0-9]').test(observation.formFieldPath);\n });\n if (observationsForControl.length > 0) {\n return observationsForControl;\n }\n\n var formNamespaceAndPath = (0, _formNamespace.createFormNamespaceAndPath)(formName, formVersion, control.id, parentFormFieldPath);\n return [obsFromMetadata(formNamespaceAndPath, control)];\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Obs.js\n// module id = 175\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/Obs.js?");
|
||
|
||
/***/ }),
|
||
/* 176 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getKeyPrefixForControl = getKeyPrefixForControl;\nexports.createFormNamespaceAndPath = createFormNamespaceAndPath;\nexports.getUpdatedFormFieldPath = getUpdatedFormFieldPath;\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getKeyPrefixForControl(formName, formVersion, controlId, parentFormFieldPath) {\n var formFieldPath = (0, _isEmpty2.default)(parentFormFieldPath) ? formName + '.' + formVersion + '/' + controlId : parentFormFieldPath + '/' + controlId;\n return {\n formNamespace: '' + _constants2.default.bahmni,\n formFieldPath: formFieldPath\n };\n}\n\nfunction createFormNamespaceAndPath(formName, formVersion, controlId, parentFormFieldPath) {\n var formNamespaceAndPath = getKeyPrefixForControl(formName, formVersion, controlId, parentFormFieldPath);\n formNamespaceAndPath.formFieldPath += '-0';\n return formNamespaceAndPath;\n}\n\nfunction getUpdatedFormFieldPath(sourceNode, parentFormFieldPath) {\n if ((0, _isEmpty2.default)(parentFormFieldPath)) {\n return sourceNode.formFieldPath;\n }\n var sourceFormFieldPath = sourceNode.formFieldPath;\n var lastIndex = sourceFormFieldPath.lastIndexOf('/');\n return parentFormFieldPath + sourceFormFieldPath.substring(lastIndex, sourceFormFieldPath.length);\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/formNamespace.js\n// module id = 176\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/formNamespace.js?");
|
||
|
||
/***/ }),
|
||
/* 177 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Constants = {\n Grid: {\n defaultRowWidth: 1,\n minColumns: 1,\n minRows: 4\n },\n validations: {\n mandatory: 'mandatory',\n allowDecimal: 'allowDecimal',\n allowRange: 'allowRange',\n minMaxRange: 'minMaxRange',\n allowFutureDates: 'allowFutureDates',\n dateTimeError: 'dateTimeError'\n },\n errorTypes: {\n warning: 'warning',\n error: 'error'\n },\n bahmni: 'Bahmni',\n\n messageType: {\n success: 'success',\n error: 'error'\n },\n\n errorMessage: {\n fileTypeNotSupported: 'File Type not supported'\n },\n\n toastTimeout: 4000\n};\n\nexports.default = Constants;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/constants.js\n// module id = 177\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/constants.js?");
|
||
|
||
/***/ }),
|
||
/* 178 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseFlatten = __webpack_require__(150);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/flattenDeep.js\n// module id = 178\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/flattenDeep.js?");
|
||
|
||
/***/ }),
|
||
/* 179 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.11';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading and trailing whitespace. */\n var reTrim = /^\\s+|\\s+$/g,\n reTrimStart = /^\\s+/,\n reTrimEnd = /\\s+$/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n\n return result;\n }\n\n if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n\n return result;\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n value = iteratee(value);\n\n var low = 0,\n high = array == null ? 0 : array.length,\n valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\n function template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = lodash.templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n var sourceURL = '//# sourceURL=' +\n ('sourceURL' in options\n ? options.sourceURL\n : ('lodash.templateSources[' + (++templateCounter) + ']')\n ) + '\\n';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n }\n\n /**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n\n /**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n\n /**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrim, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n }\n\n /**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimEnd, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n }\n\n /**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n }\n\n /**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n }\n\n /**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n }\n\n /**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\n var upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n });\n\n /**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n var upperFirst = createCaseFirst('toUpperCase');\n\n /**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n });\n\n /**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n\n /**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = getIteratee();\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n\n /**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\n function constant(value) {\n return function() {\n return value;\n };\n }\n\n /**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\n function defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n }\n\n /**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\n var flow = createFlow();\n\n /**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\n var flowRight = createFlow(true);\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n function iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n */\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n\n /**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\n var over = createOver(arrayMap);\n\n /**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\n var overEvery = createOver(arrayEvery);\n\n /**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n */\n var overSome = createOver(arraySome);\n\n /**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n\n /**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n }\n\n /**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n var range = createRange();\n\n /**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\n var rangeRight = createRange(true);\n\n /**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\n function stubArray() {\n return [];\n }\n\n /**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n function stubFalse() {\n return false;\n }\n\n /**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\n function stubObject() {\n return {};\n }\n\n /**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\n function stubString() {\n return '';\n }\n\n /**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\n function stubTrue() {\n return true;\n }\n\n /**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\n function times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = getIteratee(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n }\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\n var add = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n\n /**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\n var ceil = createRound('ceil');\n\n /**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n\n /**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\n var floor = createRound('floor');\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n function maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n : undefined;\n }\n\n /**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\n function mean(array) {\n return baseMean(array, identity);\n }\n\n /**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\n function meanBy(array, iteratee) {\n return baseMean(array, getIteratee(iteratee, 2));\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n function minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n : undefined;\n }\n\n /**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n\n /**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\n var round = createRound('round');\n\n /**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n\n /**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\n function sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n }\n\n /**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\n function sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, getIteratee(iteratee, 2))\n : 0;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n\n // Add aliases.\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Assign default placeholders.\n arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n\n // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n arrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n\n // Add `LazyWrapper` methods that accept an `iteratee` value.\n arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': getIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n });\n\n // Add `LazyWrapper` methods for `_.head` and `_.last`.\n arrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n\n // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n arrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n };\n\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n\n // Add `LazyWrapper` methods to `lodash.prototype`.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n });\n\n // Add `Array` methods to `lodash.prototype`.\n arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Map minified method names to their real names.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = (lodashFunc.name + ''),\n names = realNames[key] || (realNames[key] = []);\n\n names.push({ 'name': methodName, 'func': lodashFunc });\n }\n });\n\n realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n }];\n\n // Add methods to `LazyWrapper`.\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n // Add lazy aliases.\n lodash.prototype.first = lodash.prototype.head;\n\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n });\n\n /*--------------------------------------------------------------------------*/\n\n // Export lodash.\n var _ = runInContext();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (true) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = _;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n return _;\n }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = _)._ = _;\n // Export for CommonJS support.\n freeExports._ = _;\n }\n else {\n // Export to the global object.\n root._ = _;\n }\n}.call(this));\n\n/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(89)(module)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/lodash.js\n// module id = 179\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/lodash.js?");
|
||
|
||
/***/ }),
|
||
/* 180 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AbnormalObsGroupMapper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _Obs = __webpack_require__(175);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AbnormalObsGroupMapper = exports.AbnormalObsGroupMapper = function () {\n function AbnormalObsGroupMapper() {\n _classCallCheck(this, AbnormalObsGroupMapper);\n }\n\n _createClass(AbnormalObsGroupMapper, [{\n key: 'getInitialObject',\n value: function getInitialObject(formName, formVersion, control, bahmniObservations) {\n return (0, _Obs.createObsFromControl)(formName, formVersion, control, bahmniObservations);\n }\n }, {\n key: 'setValue',\n value: function setValue(obsGroup, obs, errors) {\n var updatedObsGroup = obsGroup.addGroupMember(obs);\n var abnormalChildObs = updatedObsGroup.getAbnormalChildObs();\n var error = (0, _find2.default)(errors, function (e) {\n return e.message === _constants2.default.validations.allowRange;\n });\n if (obs.isNumeric()) {\n if (!obs.getValue()) {\n updatedObsGroup = updatedObsGroup.addGroupMember(abnormalChildObs.void());\n } else {\n var abnormalValue = error !== undefined;\n updatedObsGroup = updatedObsGroup.addGroupMember(abnormalChildObs.setValue(abnormalValue));\n }\n }\n if (abnormalChildObs === obs) {\n var numericObs = updatedObsGroup.getGroupMembers().filter(function (o) {\n return o.isNumeric();\n }).get(0);\n if (!numericObs.getValue()) {\n updatedObsGroup = updatedObsGroup.addGroupMember(abnormalChildObs.void());\n }\n }\n\n var filteredMembers = updatedObsGroup.getGroupMembers().filter(function (groupMember) {\n return groupMember.getValue() !== undefined;\n });\n var voided = updatedObsGroup.getGroupMembers().every(function (groupMember) {\n return groupMember.isVoided();\n });\n\n if (filteredMembers.size === 0 || voided) {\n updatedObsGroup = updatedObsGroup.setValue(undefined).void();\n } else {\n updatedObsGroup = updatedObsGroup.set('voided', false);\n }\n\n return updatedObsGroup;\n }\n }, {\n key: 'getObject',\n value: function getObject(obsGroup) {\n return obsGroup.toJS();\n }\n }]);\n\n return AbnormalObsGroupMapper;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/AbnormalObsGroupMapper.js\n// module id = 180\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/mapper/AbnormalObsGroupMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 181 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsGroupMapper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Obs = __webpack_require__(175);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _lodash = __webpack_require__(179);\n\nvar _ObservationMapper = __webpack_require__(182);\n\nvar _ObservationMapper2 = _interopRequireDefault(_ObservationMapper);\n\nvar _formNamespace = __webpack_require__(176);\n\nvar _ControlUtil = __webpack_require__(183);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ObsGroupMapper = exports.ObsGroupMapper = function () {\n function ObsGroupMapper() {\n _classCallCheck(this, ObsGroupMapper);\n }\n\n _createClass(ObsGroupMapper, [{\n key: 'getInitialObject',\n value: function getInitialObject(formName, formVersion, control, currentLayerObservations, allObs, parentFormFieldPath) {\n var updatedObservations = this.updateOldObsGroupFormFieldPathForBackwardCompatibility(control, currentLayerObservations, parentFormFieldPath);\n return (0, _Obs.createObsFromControl)(formName, formVersion, control, updatedObservations, parentFormFieldPath);\n }\n }, {\n key: 'updateOldObsGroupFormFieldPathForBackwardCompatibility',\n value: function updateOldObsGroupFormFieldPathForBackwardCompatibility(control, bahmniObservations, parentFormFieldPath) {\n var _this = this;\n\n if ((0, _isEmpty2.default)(bahmniObservations) || !(0, _ControlUtil.isAnyAncestorOrControlHasAddMore)(control)) {\n return bahmniObservations;\n }\n var controlPrefix = '/' + control.id;\n var newObservations = bahmniObservations.map(function (observation) {\n if (observation.formFieldPath.includes(controlPrefix)) {\n return _this.updateToLatestFormFieldPath(observation, parentFormFieldPath);\n }\n return observation;\n });\n return newObservations;\n }\n }, {\n key: 'updateToLatestFormFieldPath',\n value: function updateToLatestFormFieldPath(observation, parentFormFieldPath) {\n var _this2 = this;\n\n var updatedObservation = observation.set('formFieldPath', (0, _formNamespace.getUpdatedFormFieldPath)(observation, parentFormFieldPath));\n if (observation.groupMembers) {\n updatedObservation = updatedObservation.set('groupMembers', updatedObservation.groupMembers.map(function (gm) {\n return _this2.updateToLatestFormFieldPath(gm, updatedObservation.formFieldPath);\n }));\n }\n return updatedObservation;\n }\n }, {\n key: 'setValue',\n value: function setValue(obsGroup, obs) {\n var updatedObsGroup = obsGroup.addGroupMember(obs);\n\n var filteredMembers = this.areAllChildObsVoided(updatedObsGroup.getGroupMembers());\n var voided = updatedObsGroup.getGroupMembers().every(function (groupMember) {\n return groupMember.isVoided();\n });\n\n if (filteredMembers.size === 0 || voided) {\n updatedObsGroup = updatedObsGroup.setValue(undefined).void();\n } else {\n updatedObsGroup = updatedObsGroup.setValue(obs.value).set('voided', false);\n }\n\n return updatedObsGroup;\n }\n }, {\n key: 'areAllChildObsVoided',\n value: function areAllChildObsVoided(observations) {\n var _this3 = this;\n\n return observations.filter(function (obs) {\n if (!(0, _isEmpty2.default)(obs.groupMembers)) {\n return _this3.areAllChildObsVoided(obs.groupMembers);\n }\n return !obs.voided;\n });\n }\n }, {\n key: 'getObject',\n value: function getObject(obsGroup) {\n return obsGroup.getObject(obsGroup);\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return {};\n }\n }, {\n key: 'getData',\n value: function getData(record) {\n var obsGroup = (0, _lodash.cloneDeep)(record.dataSource).toJS();\n if (obsGroup.formFieldPath !== record.formFieldPath) {\n obsGroup.uuid = undefined;\n obsGroup.formFieldPath = record.formFieldPath;\n }\n obsGroup.groupMembers = new _ObservationMapper2.default().from(record);\n obsGroup.voided = !record.active || obsGroup.groupMembers && obsGroup.groupMembers.filter(function (child) {\n return !child.voided;\n }).length === 0;\n obsGroup.inactive = !record.active;\n\n return obsGroup.uuid === undefined && (0, _isEmpty2.default)(obsGroup.groupMembers) ? null : obsGroup;\n }\n }, {\n key: 'getChildren',\n value: function getChildren(obs) {\n return obs.groupMembers;\n }\n }]);\n\n return ObsGroupMapper;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/ObsGroupMapper.js\n// module id = 181\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/mapper/ObsGroupMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 182 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _MapperStore = __webpack_require__(173);\n\nvar _MapperStore2 = _interopRequireDefault(_MapperStore);\n\nvar _flattenDeep = __webpack_require__(178);\n\nvar _flattenDeep2 = _interopRequireDefault(_flattenDeep);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ObservationMapper = function () {\n function ObservationMapper() {\n _classCallCheck(this, ObservationMapper);\n }\n\n _createClass(ObservationMapper, [{\n key: 'from',\n value: function from(records) {\n var result = records.children.map(function (r) {\n var mapper = _MapperStore2.default.getMapper(r.control);\n return mapper.getData(r);\n });\n var filteredResult = result.filter(function (r) {\n return r && (r.concept || !r.voided);\n });\n\n return (0, _flattenDeep2.default)(filteredResult.toJS());\n }\n }]);\n\n return ObservationMapper;\n}();\n\nexports.default = ObservationMapper;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ObservationMapper.js\n// module id = 182\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ObservationMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 183 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAnyAncestorOrControlHasAddMore = isAnyAncestorOrControlHasAddMore;\nexports.getCurrentFormFieldPathIfAddMore = getCurrentFormFieldPathIfAddMore;\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _lodash = __webpack_require__(179);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAnyAncestorOrControlHasAddMore(control, parentFormFieldPath) {\n if (parentFormFieldPath) {\n return true;\n }\n return _lodash2.default.has(control, 'properties.addMore') ? control.properties.addMore : false;\n}\n\nfunction getCurrentFormFieldPathIfAddMore(formName, formVersion, control, parentFormFieldPath) {\n if (!(0, _isEmpty2.default)(parentFormFieldPath)) {\n return parentFormFieldPath + '/' + control.id + '-0';\n }\n return control.properties.addMore ? formName + '.' + formVersion + '/' + control.id + '-0' : '';\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ControlUtil.js\n// module id = 183\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ControlUtil.js?");
|
||
|
||
/***/ }),
|
||
/* 184 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SectionMapper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ObsList = __webpack_require__(185);\n\nvar _immutable = __webpack_require__(172);\n\nvar _lodash = __webpack_require__(179);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _formNamespace = __webpack_require__(176);\n\nvar _flattenDeep = __webpack_require__(178);\n\nvar _flattenDeep2 = _interopRequireDefault(_flattenDeep);\n\nvar _ObservationMapper = __webpack_require__(182);\n\nvar _ObservationMapper2 = _interopRequireDefault(_ObservationMapper);\n\nvar _ControlUtil = __webpack_require__(183);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SectionMapper = exports.SectionMapper = function () {\n function SectionMapper() {\n _classCallCheck(this, SectionMapper);\n }\n\n _createClass(SectionMapper, [{\n key: 'getInitialObject',\n value: function getInitialObject(formName, formVersion, control, currentLayerObs, bahmniObservations, parentFormFieldPath) {\n return this._getInitialObjectInternal(formName, formVersion, control, bahmniObservations, parentFormFieldPath);\n }\n }, {\n key: '_getInitialObjectInternal',\n value: function _getInitialObjectInternal(formName, formVersion, control, bahmniObservations, parentFormFieldPath) {\n var obsList = bahmniObservations || new _immutable.List();\n\n if ((0, _ControlUtil.isAnyAncestorOrControlHasAddMore)(control, parentFormFieldPath) && !_lodash2.default.isEmpty(bahmniObservations)) {\n var keyPrefix = (0, _formNamespace.getKeyPrefixForControl)(formName, formVersion, control.id, parentFormFieldPath);\n var segregatedObs = this.segregateObsByAddMoreSections(keyPrefix, obsList);\n if (!_lodash2.default.isEmpty(segregatedObs)) {\n return segregatedObs.map(function (obsArray) {\n var formFieldPath = obsArray[0].formFieldPath.substring(0, keyPrefix.formFieldPath.length + 2);\n return new _ObsList.ObsList({ obsList: obsArray, formFieldPath: formFieldPath });\n });\n }\n }\n\n var _createFormNamespaceA = (0, _formNamespace.createFormNamespaceAndPath)(formName, formVersion, control.id, parentFormFieldPath),\n formFieldPath = _createFormNamespaceA.formFieldPath;\n\n return [new _ObsList.ObsList({ obsList: obsList, formFieldPath: formFieldPath })];\n }\n }, {\n key: 'segregateObsByAddMoreSections',\n value: function segregateObsByAddMoreSections(prefix, bahmniObservations) {\n var filteredObs = bahmniObservations.filter(function (obs) {\n return obs.formFieldPath.startsWith(prefix.formFieldPath);\n });\n var groupedObs = _lodash2.default.groupBy(filteredObs, function (obs) {\n return obs.formFieldPath.slice(prefix.formFieldPath.length).split('/')[0];\n });\n return _lodash2.default.values(groupedObs);\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return {};\n }\n }, {\n key: 'getData',\n value: function getData(record) {\n var r = new _ObservationMapper2.default().from(record);\n\n return (0, _flattenDeep2.default)(r);\n }\n }, {\n key: 'getChildren',\n value: function getChildren(data) {\n return data.obsList;\n }\n }]);\n\n return SectionMapper;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/SectionMapper.js\n// module id = 184\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/mapper/SectionMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 185 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsList = exports.ImmutableObsList = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _immutable = __webpack_require__(172);\n\nvar _flattenDeep = __webpack_require__(178);\n\nvar _flattenDeep2 = _interopRequireDefault(_flattenDeep);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable new-cap */\n\n\nvar ImmutableObsList = exports.ImmutableObsList = (0, _immutable.Record)({\n inactive: false,\n formFieldPath: undefined,\n obs: undefined,\n obsList: new _immutable.List()\n});\n\nvar ObsList = exports.ObsList = function (_ImmutableObsList) {\n _inherits(ObsList, _ImmutableObsList);\n\n function ObsList() {\n _classCallCheck(this, ObsList);\n\n return _possibleConstructorReturn(this, (ObsList.__proto__ || Object.getPrototypeOf(ObsList)).apply(this, arguments));\n }\n\n _createClass(ObsList, [{\n key: 'cloneForAddMore',\n value: function cloneForAddMore(formFieldPath) {\n return new ObsList({\n obs: this.get('obs').set('formFieldPath', formFieldPath),\n formNamespace: this.get('formNamespace'),\n obsList: new _immutable.List(),\n formFieldPath: formFieldPath\n });\n }\n }, {\n key: 'void',\n value: function _void() {\n var voidedObsList = this.obsList.map(function (obs) {\n return obs.void();\n });\n return this.set('obsList', voidedObsList);\n }\n }, {\n key: 'isVoided',\n value: function isVoided() {\n return this.obsList.every(function (obs) {\n return obs.isVoided();\n });\n }\n }, {\n key: 'getObsList',\n value: function getObsList() {\n return this.get('obsList');\n }\n }, {\n key: 'getObs',\n value: function getObs() {\n return this.get('obs');\n }\n }, {\n key: 'setObsList',\n value: function setObsList(obsList) {\n return this.set('obsList', obsList);\n }\n }, {\n key: 'getObject',\n value: function getObject(obsList) {\n var observationList = [];\n obsList.getObsList().forEach(function (obs) {\n observationList.push(obs.getObject(obs));\n });\n\n return (0, _flattenDeep2.default)(observationList);\n }\n }]);\n\n return ObsList;\n}(ImmutableObsList);\n/* eslint-disable new-cap */\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ObsList.js\n// module id = 185\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ObsList.js?");
|
||
|
||
/***/ }),
|
||
/* 186 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsListMapper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Obs = __webpack_require__(175);\n\nvar _immutable = __webpack_require__(172);\n\nvar _filter = __webpack_require__(187);\n\nvar _filter2 = _interopRequireDefault(_filter);\n\nvar _groupBy = __webpack_require__(143);\n\nvar _groupBy2 = _interopRequireDefault(_groupBy);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _formNamespace = __webpack_require__(176);\n\nvar _ObsList = __webpack_require__(185);\n\nvar _lodash = __webpack_require__(179);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ObsListMapper = exports.ObsListMapper = function () {\n function ObsListMapper() {\n _classCallCheck(this, ObsListMapper);\n }\n\n _createClass(ObsListMapper, [{\n key: 'getInitialObject',\n value: function getInitialObject(formName, formVersion, control, bahmniObservations, allObs, parentFormFieldpath) {\n var formNamespaceAndPath = (0, _formNamespace.createFormNamespaceAndPath)(formName, formVersion, control.id, parentFormFieldpath);\n var obs = (0, _Obs.obsFromMetadata)(formNamespaceAndPath, control);\n\n var keyPrefix = (0, _formNamespace.getKeyPrefixForControl)(formName, formVersion, control.id, parentFormFieldpath);\n var filteredObs = (0, _filter2.default)(bahmniObservations, function (observation) {\n return observation.formFieldPath.startsWith(keyPrefix.formFieldPath + '-');\n });\n var groupedObs = (0, _groupBy2.default)(filteredObs, 'formFieldPath');\n\n var obsLists = [];\n Object.keys(groupedObs).sort().forEach(function (formFieldPath) {\n var obsList = new _immutable.List();\n var inactive = false;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = groupedObs[formFieldPath][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var observation = _step.value;\n\n obsList = obsList.concat((0, _Obs.createObsFromControl)(formName, formVersion, control, [observation], parentFormFieldpath));\n inactive = observation.inactive;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n obs = obs.set('formFieldPath', formFieldPath);\n\n obsLists.push(new _ObsList.ObsList({ obsList: obsList, formFieldPath: formFieldPath, obs: obs, inactive: inactive }));\n });\n if (obsLists.length === 0) {\n return [new _ObsList.ObsList({\n obsList: new _immutable.List(),\n formFieldPath: formNamespaceAndPath.formFieldPath, obs: obs\n })];\n }\n return obsLists;\n }\n }, {\n key: 'getValue',\n value: function getValue(obsListRecord) {\n var comment = undefined;\n var updatedObsList = [];\n var obsList = obsListRecord.getObsList();\n obsList.forEach(function (obs) {\n if (obs.value) {\n updatedObsList.push(obs.value);\n comment = comment || obs.comment;\n }\n });\n return { value: (0, _isEmpty2.default)(updatedObsList) ? undefined : updatedObsList, comment: comment };\n }\n }, {\n key: 'buildObs',\n value: function buildObs(record, value, uuid, comment) {\n var targetValue = record.dataSource.obsList.filter(function (obs) {\n return value && obs.value.uuid === value.uuid && obs.formFieldPath === record.formFieldPath;\n });\n var obs = (targetValue.size > 0 ? (0, _lodash.cloneDeep)(targetValue.get(0)) : (0, _lodash.cloneDeep)(record.dataSource.obs)).toJS();\n obs.uuid = uuid;\n obs.value = value;\n obs.inactive = !record.active;\n obs.comment = comment;\n obs.voided = !value;\n obs.formFieldPath = record.formFieldPath;\n return obs;\n }\n }, {\n key: 'findObs',\n value: function findObs(valueList, uuid) {\n return valueList && valueList.filter(function (value) {\n return value.uuid === uuid;\n });\n }\n }, {\n key: 'fillEmptyData',\n value: function fillEmptyData(record, obsArray) {\n var _this = this;\n\n var isAddMoreRecord = record.dataSource.formFieldPath !== record.formFieldPath;\n if (!isAddMoreRecord) {\n record.dataSource.obsList.forEach(function (obs) {\n var foundObs = false;\n if (obs.value) {\n foundObs = _this.findObs(record.value.value, obs.value.uuid);\n }\n if (!foundObs || foundObs.length === 0) {\n obsArray.push(_this.buildObs(record, undefined, obs.uuid));\n }\n });\n }\n }\n }, {\n key: 'getData',\n value: function getData(record) {\n var _this2 = this;\n\n var obsArray = [];\n if (record.value.value) {\n record.value.value.forEach(function (value) {\n var targetValue = record.dataSource.obsList.filter(function (obs) {\n return obs.value.uuid === value.uuid && obs.formFieldPath === record.formFieldPath;\n });\n var uuid = targetValue.size > 0 ? targetValue.get(0).uuid : undefined;\n var newValue = record.voided ? undefined : value;\n obsArray.push(_this2.buildObs(record, newValue, uuid, record.value.comment));\n });\n }\n this.fillEmptyData(record, obsArray);\n\n return obsArray;\n }\n }]);\n\n return ObsListMapper;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/ObsListMapper.js\n// module id = 186\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/mapper/ObsListMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 187 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayFilter = __webpack_require__(80),\n baseFilter = __webpack_require__(188),\n baseIteratee = __webpack_require__(15),\n isArray = __webpack_require__(78);\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/filter.js\n// module id = 187\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/filter.js?");
|
||
|
||
/***/ }),
|
||
/* 188 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseEach = __webpack_require__(130);\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFilter.js\n// module id = 188\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/lodash/_baseFilter.js?");
|
||
|
||
/***/ }),
|
||
/* 189 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TableMapper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ObsList = __webpack_require__(185);\n\nvar _immutable = __webpack_require__(172);\n\nvar _formNamespace = __webpack_require__(176);\n\nvar _lodash = __webpack_require__(179);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _ControlUtil = __webpack_require__(183);\n\nvar _ObservationMapper = __webpack_require__(182);\n\nvar _ObservationMapper2 = _interopRequireDefault(_ObservationMapper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TableMapper = exports.TableMapper = function () {\n function TableMapper() {\n _classCallCheck(this, TableMapper);\n }\n\n _createClass(TableMapper, [{\n key: 'getInitialObject',\n value: function getInitialObject(formName, formVersion, control, currentLayerObs, bahmniObservations, parentFormFieldPath) {\n return this._getInitialObjectInternal(formName, formVersion, control, bahmniObservations, parentFormFieldPath);\n }\n }, {\n key: '_getInitialObjectInternal',\n value: function _getInitialObjectInternal(formName, formVersion, control, bahmniObservations, parentFormFieldPath) {\n var obsList = bahmniObservations || new _immutable.List();\n if ((0, _ControlUtil.isAnyAncestorOrControlHasAddMore)(control, parentFormFieldPath) && !_lodash2.default.isEmpty(bahmniObservations)) {\n var keyPrefix = (0, _formNamespace.getKeyPrefixForControl)(formName, formVersion, control.id, parentFormFieldPath);\n var segregatedObs = this.segregateObsByAddMoreSections(keyPrefix, obsList);\n if (!_lodash2.default.isEmpty(segregatedObs)) {\n return segregatedObs.map(function (obsArray) {\n var formFieldPath = obsArray[0].formFieldPath.substring(0, keyPrefix.formFieldPath.length + 2);\n return new _ObsList.ObsList({ obsList: obsArray, formFieldPath: formFieldPath });\n });\n }\n }\n\n var _createFormNamespaceA = (0, _formNamespace.createFormNamespaceAndPath)(formName, formVersion, control.id, parentFormFieldPath),\n formFieldPath = _createFormNamespaceA.formFieldPath;\n\n return [new _ObsList.ObsList({ obsList: obsList, formFieldPath: formFieldPath })];\n }\n }, {\n key: 'segregateObsByAddMoreSections',\n value: function segregateObsByAddMoreSections(prefix, bahmniObservations) {\n var filteredObs = bahmniObservations.filter(function (obs) {\n return obs.formFieldPath.startsWith(prefix.formFieldPath + '-');\n });\n var groupedObs = _lodash2.default.groupBy(filteredObs, function (obs) {\n return obs.formFieldPath.slice(prefix.formFieldPath.length).split('/')[0];\n });\n return _lodash2.default.values(groupedObs);\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return {};\n }\n }, {\n key: 'getData',\n value: function getData(record) {\n var r = new _ObservationMapper2.default().from(record);\n return _lodash2.default.flattenDeep(r);\n }\n }, {\n key: 'getChildren',\n value: function getChildren(data) {\n return data.obsList;\n }\n }]);\n\n return TableMapper;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/TableMapper.js\n// module id = 189\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/mapper/TableMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 190 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ValueMapperStore = function () {\n function ValueMapperStore() {\n _classCallCheck(this, ValueMapperStore);\n\n if (!window.valueMapperStore) {\n window.valueMapperStore = this;\n this.mapperList = {};\n }\n return window.valueMapperStore;\n }\n\n _createClass(ValueMapperStore, [{\n key: \"getMapper\",\n value: function getMapper(control) {\n var datatype = control && control.concept && control.concept.datatype;\n return datatype && this.mapperList[datatype];\n }\n }, {\n key: \"registerValueMapper\",\n value: function registerValueMapper(type, controlMapper) {\n this.mapperList[type] = controlMapper;\n }\n }]);\n\n return ValueMapperStore;\n}();\n\nexports.default = new ValueMapperStore();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ValueMapperStore.js\n// module id = 190\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ValueMapperStore.js?");
|
||
|
||
/***/ }),
|
||
/* 191 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Util = __webpack_require__(169);\n\nvar _sortBy = __webpack_require__(149);\n\nvar _sortBy2 = _interopRequireDefault(_sortBy);\n\nvar _formNamespace = __webpack_require__(176);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ControlRecordTreeMgr = function () {\n function ControlRecordTreeMgr() {\n _classCallCheck(this, ControlRecordTreeMgr);\n }\n\n _createClass(ControlRecordTreeMgr, [{\n key: 'generateNextTree',\n value: function generateNextTree(rootTree, formFieldPath, parentFormFieldPath) {\n var _this = this;\n\n var updatedTree = this.getLatestBrotherTree(rootTree, formFieldPath);\n var updatedFormFieldPath = parentFormFieldPath === undefined ? this.getNextFormFieldPath(formFieldPath) : (0, _formNamespace.getUpdatedFormFieldPath)(updatedTree, parentFormFieldPath);\n updatedTree = updatedTree.set('formFieldPath', updatedFormFieldPath);\n if (updatedTree.children && updatedTree.children.size > 0) {\n var filteredTree = this.filterChildTree(updatedTree);\n var clonedChildTree = filteredTree.map(function (r) {\n return _this.generateNextTree(rootTree, r.formFieldPath, updatedTree.formFieldPath);\n });\n updatedTree = updatedTree.set('children', clonedChildTree);\n }\n return updatedTree.set('value', {}).set('active', true);\n }\n }, {\n key: 'filterChildTree',\n value: function filterChildTree(updatedTree) {\n var getPrefix = function getPrefix(formFieldPath) {\n return formFieldPath.substring(0, formFieldPath.lastIndexOf('-'));\n };\n\n return updatedTree.children.groupBy(function (r) {\n return getPrefix(r.formFieldPath);\n }).map(function (x) {\n return x.first();\n }).toList();\n }\n }, {\n key: 'getNextFormFieldPath',\n value: function getNextFormFieldPath(formFieldPath) {\n var lastIndex = formFieldPath.lastIndexOf('-');\n var nextSuffix = _Util.Util.increment(formFieldPath.substring(lastIndex + 1, formFieldPath.length));\n return formFieldPath.substring(0, lastIndex) + '-' + nextSuffix;\n }\n }, {\n key: 'findParentTree',\n value: function findParentTree(parentTree, formFieldPath) {\n var _this2 = this;\n\n var targetTree = undefined;\n parentTree.children.forEach(function (childTree) {\n if (childTree.formFieldPath === formFieldPath) {\n targetTree = parentTree;\n } else if (!targetTree && childTree.children) {\n var foundTree = _this2.findParentTree(childTree, formFieldPath);\n if (foundTree) {\n targetTree = foundTree;\n }\n }\n });\n\n return targetTree;\n }\n }, {\n key: 'addToRootTree',\n value: function addToRootTree(rootTree, parentTree, addedTree) {\n var _this3 = this;\n\n if (rootTree === parentTree) {\n return rootTree.set('children', rootTree.children.push(addedTree));\n }\n\n var tree = rootTree.children.map(function (childTree) {\n if (childTree.children) {\n var updatedChildTree = _this3.addToRootTree(childTree, parentTree, addedTree);\n return updatedChildTree || childTree;\n }\n return childTree;\n });\n\n return rootTree.set('children', tree);\n }\n }, {\n key: 'getLatestBrotherTree',\n value: function getLatestBrotherTree(parentTree, targetFormFieldPath) {\n var brotherTrees = this.getBrotherTrees(parentTree, targetFormFieldPath);\n var sortedTrees = (0, _sortBy2.default)(brotherTrees, function (t) {\n return _Util.Util.toInt(t.formFieldPath.split('-')[1]);\n });\n return sortedTrees[sortedTrees.length - 1];\n }\n }, {\n key: 'getBrotherTrees',\n value: function getBrotherTrees(parentTree, targetFormFieldPath) {\n var _this4 = this;\n\n var brotherTrees = [];\n var getPrefix = function getPrefix(formFieldPath) {\n return formFieldPath.substring(0, formFieldPath.lastIndexOf('-'));\n };\n if (getPrefix(parentTree.formFieldPath) === getPrefix(targetFormFieldPath) && !parentTree.voided) {\n brotherTrees.push(parentTree);\n }\n\n if (parentTree.children) {\n parentTree.children.forEach(function (childTree) {\n brotherTrees = brotherTrees.concat(_this4.getBrotherTrees(childTree, targetFormFieldPath));\n });\n }\n\n return brotherTrees;\n }\n }], [{\n key: 'add',\n value: function add(rootTree, formFieldPath) {\n var treeMgr = new ControlRecordTreeMgr();\n var parentTree = treeMgr.findParentTree(rootTree, formFieldPath);\n var addedTree = treeMgr.generateNextTree(rootTree, formFieldPath);\n return treeMgr.addToRootTree(rootTree, parentTree, addedTree.removeObsUuidsInDataSource());\n }\n }, {\n key: 'update',\n value: function update(rootTree, nodeTree) {\n if (rootTree.formFieldPath === nodeTree.formFieldPath) {\n return nodeTree;\n }\n\n if (rootTree.children) {\n var updatedChild = rootTree.children.map(function (r) {\n return ControlRecordTreeMgr.update(r, nodeTree) || r;\n });\n return rootTree.set('children', updatedChild);\n }\n\n return null;\n }\n }, {\n key: 'find',\n value: function find(rootTree, formFieldPath) {\n var parentTree = new ControlRecordTreeMgr().findParentTree(rootTree, formFieldPath);\n if (parentTree) {\n var filteredList = parentTree.children.filter(function (r) {\n return r.formFieldPath === formFieldPath;\n });\n return filteredList.get(0);\n }\n return null;\n }\n }, {\n key: 'getBrothers',\n value: function getBrothers(rootTree, targetTree) {\n if (targetTree) {\n return new ControlRecordTreeMgr().getBrotherTrees(rootTree, targetTree.formFieldPath);\n }\n return [];\n }\n }]);\n\n return ControlRecordTreeMgr;\n}();\n\nexports.default = ControlRecordTreeMgr;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ControlRecordTreeMgr.js\n// module id = 191\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ControlRecordTreeMgr.js?");
|
||
|
||
/***/ }),
|
||
/* 192 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _FormContext = __webpack_require__(193);\n\nvar _FormContext2 = _interopRequireDefault(_FormContext);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ScriptRunner = function () {\n function ScriptRunner(formRecords, patient) {\n _classCallCheck(this, ScriptRunner);\n\n this.formContext = new _FormContext2.default(formRecords, patient);\n }\n\n _createClass(ScriptRunner, [{\n key: 'execute',\n value: function execute(eventJs) {\n var formContext = this.formContext;\n if (eventJs) {\n var executiveJs = '(' + eventJs + ')(formContext)';\n /* eslint-disable */\n eval(executiveJs);\n }\n return formContext.getRecords();\n }\n }]);\n\n return ScriptRunner;\n}();\n\nexports.default = ScriptRunner;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ScriptRunner.js\n// module id = 192\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ScriptRunner.js?");
|
||
|
||
/***/ }),
|
||
/* 193 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ControlRecordWrapper = __webpack_require__(194);\n\nvar _ControlRecordWrapper2 = _interopRequireDefault(_ControlRecordWrapper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FormContext = function () {\n function FormContext(formRecords, patient) {\n _classCallCheck(this, FormContext);\n\n this.wrapper = new _ControlRecordWrapper2.default(formRecords);\n this.rootRecord = formRecords;\n this.patient = patient;\n }\n\n _createClass(FormContext, [{\n key: 'getName',\n value: function getName(recordTree) {\n return recordTree.getConceptName() || recordTree.getLabelName();\n }\n }, {\n key: 'getId',\n value: function getId(recordTree) {\n return recordTree.getControlId();\n }\n }, {\n key: 'find',\n value: function find(recordTree, name) {\n var _this = this;\n\n var records = [];\n if (this.getName(recordTree) === name) {\n records.push(recordTree);\n }\n if (recordTree.children) {\n recordTree.children.forEach(function (r) {\n var filteredRecords = _this.find(r, name);\n records = records.concat(filteredRecords);\n });\n }\n return records;\n }\n }, {\n key: 'get',\n value: function get(name) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var currentRecord = this.find(this.rootRecord, name)[index];\n if (!currentRecord) {\n var message = 'name[' + name + '] and position[' + index + ']';\n /* eslint-disable */\n console.warn('[FormEventHandler] Control with ' + message + ' is not exist');\n }\n return this.wrapper.set(currentRecord);\n }\n }, {\n key: 'findById',\n value: function findById(recordTree, id) {\n var _this2 = this;\n\n var records = [];\n var controlId = this.getId(recordTree);\n if (controlId && parseInt(controlId) === id) {\n records.push(recordTree);\n }\n if (recordTree.children) {\n recordTree.children.forEach(function (r) {\n var filteredRecords = _this2.findById(r, id);\n records = records.concat(filteredRecords);\n });\n }\n return records;\n }\n }, {\n key: 'getPatient',\n value: function getPatient() {\n return this.patient;\n }\n }, {\n key: 'getById',\n value: function getById(id) {\n var currentRecord = this.findById(this.rootRecord, id)[0];\n if (!currentRecord) {\n var message = 'id - ' + id;\n /* eslint-disable */\n console.warn('[FormEventHandler] Control with ' + message + ' does not exist');\n }\n return this.wrapper.set(currentRecord);\n }\n }, {\n key: 'getRecords',\n value: function getRecords() {\n return this.wrapper.getRecords();\n }\n }]);\n\n return FormContext;\n}();\n\nexports.default = FormContext;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/FormContext.js\n// module id = 193\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/FormContext.js?");
|
||
|
||
/***/ }),
|
||
/* 194 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ControlRecordTreeMgr = __webpack_require__(191);\n\nvar _ControlRecordTreeMgr2 = _interopRequireDefault(_ControlRecordTreeMgr);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ControlRecordWrapper = function () {\n function ControlRecordWrapper(rootRecord) {\n _classCallCheck(this, ControlRecordWrapper);\n\n this.rootRecord = rootRecord;\n }\n\n _createClass(ControlRecordWrapper, [{\n key: 'set',\n value: function set(currentRecord) {\n this.currentRecord = currentRecord;\n return this;\n }\n }, {\n key: 'update',\n value: function update(updatedRecord) {\n var currentRecord = this.set(this.updateNode(updatedRecord)).currentRecord;\n this.rootRecord = _ControlRecordTreeMgr2.default.update(this.rootRecord, currentRecord);\n }\n }, {\n key: 'updateNode',\n value: function updateNode(record) {\n var _this = this;\n\n if (record.children) {\n var updatedChild = record.children.map(function (r) {\n var updatedRecord = r.set('enabled', record.enabled).set('hidden', record.hidden);\n _this.updateNode(_this.set(updatedRecord).currentRecord);\n return updatedRecord;\n });\n return record.set('children', updatedChild);\n }\n return record;\n }\n }, {\n key: 'getRecords',\n value: function getRecords() {\n return this.rootRecord;\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.currentRecord && this.currentRecord.getValue();\n }\n }, {\n key: 'setValue',\n value: function setValue(value) {\n var _this2 = this;\n\n var brotherTrees = _ControlRecordTreeMgr2.default.getBrothers(this.rootRecord, this.currentRecord);\n\n brotherTrees.forEach(function (r) {\n var updatedRecord = r.set('value', {\n value: r.setValue(value),\n comment: _this2.currentRecord.comment\n });\n _this2.update(updatedRecord);\n });\n }\n }, {\n key: 'getEnabled',\n value: function getEnabled() {\n return this.currentRecord && this.currentRecord.enabled;\n }\n }, {\n key: 'setEnabled',\n value: function setEnabled(isEnabled) {\n var _this3 = this;\n\n var brotherTrees = _ControlRecordTreeMgr2.default.getBrothers(this.rootRecord, this.currentRecord);\n\n brotherTrees.forEach(function (r) {\n var updatedRecord = r.set('enabled', isEnabled);\n _this3.update(updatedRecord);\n });\n }\n }, {\n key: 'getHidden',\n value: function getHidden() {\n return this.currentRecord && this.currentRecord.hidden;\n }\n }, {\n key: 'setHidden',\n value: function setHidden(hidden) {\n var _this4 = this;\n\n var brotherTrees = _ControlRecordTreeMgr2.default.getBrothers(this.rootRecord, this.currentRecord);\n\n brotherTrees.forEach(function (r) {\n var updatedRecord = r.set('hidden', hidden);\n _this4.update(updatedRecord);\n });\n }\n }, {\n key: 'hideAndClear',\n value: function hideAndClear() {\n this.setHidden(true);\n this.clearObs();\n }\n }, {\n key: 'setObsValueAndCommentToUndefined',\n value: function setObsValueAndCommentToUndefined(controlRecord) {\n var value = Object.assign(controlRecord.value, { value: undefined, comment: undefined });\n return controlRecord.set('value', value);\n }\n }, {\n key: 'clearObs',\n value: function clearObs() {\n var _this5 = this;\n\n var brotherTrees = _ControlRecordTreeMgr2.default.getBrothers(this.rootRecord, this.currentRecord);\n\n brotherTrees.forEach(function (r) {\n var updatedRecord = _this5.clearObsValuesAndComment(r);\n _this5.update(updatedRecord);\n });\n }\n }, {\n key: 'clearObsValuesAndComment',\n value: function clearObsValuesAndComment(controlRecord) {\n var _this6 = this;\n\n var updatedRecord = controlRecord;\n if (updatedRecord.control.type === 'obsControl') {\n updatedRecord = this.setObsValueAndCommentToUndefined(updatedRecord);\n } else if (updatedRecord.children) {\n var children = updatedRecord.children;\n children.map(function (child) {\n return _this6.clearObsValuesAndComment(child);\n });\n }\n return updatedRecord;\n }\n }]);\n\n return ControlRecordWrapper;\n}();\n\nexports.default = ControlRecordWrapper;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/ControlRecordWrapper.js\n// module id = 194\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/ControlRecordWrapper.js?");
|
||
|
||
/***/ }),
|
||
/* 195 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _AddMore = __webpack_require__(196);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar addMoreDecorator = function addMoreDecorator(Sup) {\n return function (_Sup) {\n _inherits(_class, _Sup);\n\n function _class() {\n _classCallCheck(this, _class);\n\n return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));\n }\n\n _createClass(_class, [{\n key: 'showAddMore',\n value: function showAddMore() {\n var properties = this.props.metadata.properties;\n\n var isAddMoreEnabled = (0, _find2.default)(properties, function (value, key) {\n return key === 'addMore' && value;\n });\n if (isAddMoreEnabled) {\n return _react2.default.createElement(_AddMore.AddMore, { canAdd: this.props.showAddMore,\n canRemove: this.props.showRemove,\n enabled: this.props.enabled,\n onAdd: this.onAddControl,\n onRemove: this.onRemoveControl\n });\n }\n return null;\n }\n }, {\n key: 'onAddControl',\n value: function onAddControl() {\n this.props.onControlAdd(this.props.formFieldPath);\n }\n }, {\n key: 'onRemoveControl',\n value: function onRemoveControl() {\n this.props.onControlRemove(this.props.formFieldPath);\n }\n }]);\n\n return _class;\n }(Sup);\n};\n\nexports.default = addMoreDecorator;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/AddMoreDecorator.js\n// module id = 195\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/components/AddMoreDecorator.js?");
|
||
|
||
/***/ }),
|
||
/* 196 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AddMore = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AddMore = exports.AddMore = function (_Component) {\n _inherits(AddMore, _Component);\n\n function AddMore() {\n _classCallCheck(this, AddMore);\n\n return _possibleConstructorReturn(this, (AddMore.__proto__ || Object.getPrototypeOf(AddMore)).apply(this, arguments));\n }\n\n _createClass(AddMore, [{\n key: 'showAdd',\n value: function showAdd() {\n if (this.props.canAdd) {\n return _react2.default.createElement(\n 'button',\n { className: 'form-builder-add-more',\n disabled: !this.props.enabled,\n onClick: this.props.onAdd\n },\n _react2.default.createElement('i', { className: 'fa fa-plus' })\n );\n }\n return null;\n }\n }, {\n key: 'showDelete',\n value: function showDelete() {\n if (this.props.canRemove) {\n return _react2.default.createElement(\n 'button',\n { className: 'form-builder-remove',\n disabled: !this.props.enabled,\n onClick: this.props.onRemove\n },\n _react2.default.createElement('i', { className: 'fa fa-remove' })\n );\n }\n return null;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-clone' },\n this.showAdd(),\n this.showDelete()\n );\n }\n }]);\n\n return AddMore;\n}(_react.Component);\n\nAddMore.propTypes = {\n canAdd: _propTypes2.default.bool.isRequired,\n canRemove: _propTypes2.default.bool.isRequired,\n enabled: _propTypes2.default.bool,\n onAdd: _propTypes2.default.func.isRequired,\n onRemove: _propTypes2.default.func.isRequired\n};\n\nAddMore.defaultProps = {\n enabled: true\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/AddMore.jsx\n// module id = 196\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/components/AddMore.jsx?");
|
||
|
||
/***/ }),
|
||
/* 197 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NotificationContainer = function NotificationContainer(props) {\n var messageType = 'message-container ' + props.notification.type + '-message-container';\n var notificationType = 'message-icon ' + props.notification.type;\n if (props.notification.message) {\n return _react2.default.createElement(\n 'div',\n { className: 'messages' },\n _react2.default.createElement(\n 'div',\n { className: messageType },\n _react2.default.createElement(\n 'div',\n { className: notificationType },\n _react2.default.createElement('i', { className: 'fa fa-check-circle' })\n ),\n _react2.default.createElement(\n 'div',\n { className: 'message-text' },\n props.notification.message\n )\n )\n );\n }\n return _react2.default.createElement('div', null);\n};\n\nNotificationContainer.propTypes = {\n notification: _propTypes2.default.shape({\n message: _propTypes2.default.string,\n type: _propTypes2.default.string\n }).isRequired\n};\n\nexports.default = NotificationContainer;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Notification.js\n// module id = 197\n// module chunks = 0 1\n//# sourceURL=webpack:///./src/helpers/Notification.js?");
|
||
|
||
/***/ }),
|
||
/* 198 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar allLocaleData = _interopDefault(__webpack_require__(199));\nvar IntlMessageFormat = _interopDefault(__webpack_require__(200));\nvar IntlRelativeFormat = _interopDefault(__webpack_require__(210));\nvar React = __webpack_require__(3);\nvar React__default = _interopDefault(React);\nvar invariant = _interopDefault(__webpack_require__(217));\nvar memoizeIntlConstructor = _interopDefault(__webpack_require__(218));\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(IntlMessageFormat.__localeData__[normalizedLocale] && IntlRelativeFormat.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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\nvar _extends = Object.assign || 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\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = 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\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = React.PropTypes.bool;\nvar number = React.PropTypes.number;\nvar string = React.PropTypes.string;\nvar func = React.PropTypes.func;\nvar object = React.PropTypes.object;\nvar oneOf = React.PropTypes.oneOf;\nvar shape = React.PropTypes.shape;\nvar any = React.PropTypes.any;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: string,\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n '\\'': '''\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n invariant(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _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 var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n invariant(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(React.Component);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 };\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = IntlRelativeFormat.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\n\n\nvar format = Object.freeze({\n\tformatDate: formatDate,\n\tformatTime: formatTime,\n\tformatRelative: formatRelative,\n\tformatNumber: formatNumber,\n\tformatPlural: formatPlural,\n\tformatMessage: formatMessage,\n\tformatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n invariant(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat: memoizeIntlConstructor(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.Children.only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(React.Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\nprocess.env.NODE_ENV !== \"production\" ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: React.PropTypes.element.isRequired,\n initialNow: React.PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return React__default.createElement(\n Text,\n null,\n formattedDate\n );\n }\n }]);\n return FormattedDate;\n}(React.Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: React.PropTypes.any.isRequired,\n format: React.PropTypes.string,\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return React__default.createElement(\n Text,\n null,\n formattedTime\n );\n }\n }]);\n return FormattedTime;\n}(React.Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: React.PropTypes.any.isRequired,\n format: React.PropTypes.string,\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n var updateInterval = props.updateInterval;\n\n // If the `updateInterval` is falsy, including `0`, then auto updates\n // have been turned off, so we bail and skip scheduling an update.\n\n if (!updateInterval) {\n return;\n }\n\n var time = new Date(props.value).getTime();\n var delta = time - state.now;\n var units = props.units || selectUnits(delta);\n\n var unitDelay = getUnitDelay(units);\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n clearTimeout(this._timer);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return React__default.createElement(\n Text,\n null,\n formattedRelative\n );\n }\n }]);\n return FormattedRelative;\n}(React.Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n value: React.PropTypes.any.isRequired,\n format: React.PropTypes.string,\n updateInterval: React.PropTypes.number,\n initialNow: React.PropTypes.any,\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return React__default.createElement(\n Text,\n null,\n formattedNumber\n );\n }\n }]);\n return FormattedNumber;\n}(React.Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n value: React.PropTypes.any.isRequired,\n format: React.PropTypes.string,\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return React__default.createElement(\n Text,\n null,\n formattedPlural\n );\n }\n }]);\n return FormattedPlural;\n}(React.Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedPlural.propTypes = _extends({}, pluralFormatPropTypes, {\n value: React.PropTypes.any.isRequired,\n\n other: React.PropTypes.node.isRequired,\n zero: React.PropTypes.node,\n one: React.PropTypes.node,\n two: React.PropTypes.node,\n few: React.PropTypes.node,\n many: React.PropTypes.node,\n\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n (function () {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (React.isValidElement(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n })();\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(React.Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: React.PropTypes.object,\n tagName: React.PropTypes.string,\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return React__default.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(React.Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: React.PropTypes.object,\n tagName: React.PropTypes.string,\n children: React.PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(allLocaleData);\n\nexports.addLocaleData = addLocaleData;\nexports.intlShape = intlShape;\nexports.injectIntl = injectIntl;\nexports.defineMessages = defineMessages;\nexports.IntlProvider = IntlProvider;\nexports.FormattedDate = FormattedDate;\nexports.FormattedTime = FormattedTime;\nexports.FormattedRelative = FormattedRelative;\nexports.FormattedNumber = FormattedNumber;\nexports.FormattedPlural = FormattedPlural;\nexports.FormattedMessage = FormattedMessage;\nexports.FormattedHTMLMessage = FormattedHTMLMessage;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-intl/lib/index.js\n// module id = 198\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/react-intl/lib/index.js?");
|
||
|
||
/***/ }),
|
||
/* 199 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/* (ignored) */\n\n//////////////////\n// WEBPACK FOOTER\n// ../locale-data/index.js (ignored)\n// module id = 199\n// module chunks = 0 1\n//# sourceURL=webpack:///../locale-data/index.js_(ignored)?");
|
||
|
||
/***/ }),
|
||
/* 200 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* jshint node:true */\n\n'use strict';\n\nvar IntlMessageFormat = __webpack_require__(201)['default'];\n\n// Add all locale data to `IntlMessageFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\n__webpack_require__(209);\n\n// Re-export `IntlMessageFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\nexports = module.exports = IntlMessageFormat;\nexports['default'] = exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/index.js\n// module id = 200\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/index.js?");
|
||
|
||
/***/ }),
|
||
/* 201 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* jslint esnext: true */\n\n\"use strict\";\nvar src$core$$ = __webpack_require__(202), src$en$$ = __webpack_require__(208);\n\nsrc$core$$[\"default\"].__addLocaleData(src$en$$[\"default\"]);\nsrc$core$$[\"default\"].defaultLocale = 'en';\n\nexports[\"default\"] = src$core$$[\"default\"];\n\n//# sourceMappingURL=main.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/lib/main.js\n// module id = 201\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/lib/main.js?");
|
||
|
||
/***/ }),
|
||
/* 202 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar src$utils$$ = __webpack_require__(203), src$es5$$ = __webpack_require__(204), src$compiler$$ = __webpack_require__(205), intl$messageformat$parser$$ = __webpack_require__(206);\nexports[\"default\"] = MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n src$es5$$.defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\nsrc$es5$$.defineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\nsrc$es5$$.defineProperty(MessageFormat, '__localeData__', {value: src$es5$$.objCreate(null)});\nsrc$es5$$.defineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\nsrc$es5$$.defineProperty(MessageFormat, '__parse', {value: intl$messageformat$parser$$[\"default\"].parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\nsrc$es5$$.defineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new src$compiler$$[\"default\"](locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && src$utils$$.hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!src$utils$$.hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = src$es5$$.objCreate(defaults[type]);\n\n if (formats && src$utils$$.hop.call(formats, type)) {\n src$utils$$.extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\n//# sourceMappingURL=core.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/lib/core.js\n// module id = 202\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/lib/core.js?");
|
||
|
||
/***/ }),
|
||
/* 203 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nexports.extend = extend;\nvar hop = Object.prototype.hasOwnProperty;\n\nfunction extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\nexports.hop = hop;\n\n//# sourceMappingURL=utils.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/lib/utils.js\n// module id = 203\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/lib/utils.js?");
|
||
|
||
/***/ }),
|
||
/* 204 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar src$utils$$ = __webpack_require__(203);\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!src$utils$$.hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (src$utils$$.hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\nexports.defineProperty = defineProperty, exports.objCreate = objCreate;\n\n//# sourceMappingURL=es5.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/lib/es5.js\n// module id = 204\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/lib/es5.js?");
|
||
|
||
/***/ }),
|
||
/* 205 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nexports[\"default\"] = Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n\n//# sourceMappingURL=compiler.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/lib/compiler.js\n// module id = 205\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/lib/compiler.js?");
|
||
|
||
/***/ }),
|
||
/* 206 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports = module.exports = __webpack_require__(207)['default'];\nexports['default'] = exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat-parser/index.js\n// module id = 206\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat-parser/index.js?");
|
||
|
||
/***/ }),
|
||
/* 207 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nexports[\"default\"] = (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();\n\n//# sourceMappingURL=parser.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat-parser/lib/parser.js\n// module id = 207\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat-parser/lib/parser.js?");
|
||
|
||
/***/ }),
|
||
/* 208 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("// GENERATED FILE\n\"use strict\";\nexports[\"default\"] = {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n\n//# sourceMappingURL=en.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-messageformat/lib/en.js\n// module id = 208\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-messageformat/lib/en.js?");
|
||
|
||
/***/ }),
|
||
/* 209 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/* (ignored) */\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/locales (ignored)\n// module id = 209\n// module chunks = 0 1\n//# sourceURL=webpack:///./lib/locales_(ignored)?");
|
||
|
||
/***/ }),
|
||
/* 210 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* jshint node:true */\n\n'use strict';\n\nvar IntlRelativeFormat = __webpack_require__(211)['default'];\n\n// Add all locale data to `IntlRelativeFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\n__webpack_require__(216);\n\n// Re-export `IntlRelativeFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\nexports = module.exports = IntlRelativeFormat;\nexports['default'] = exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-relativeformat/index.js\n// module id = 210\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-relativeformat/index.js?");
|
||
|
||
/***/ }),
|
||
/* 211 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* jslint esnext: true */\n\n\"use strict\";\nvar src$core$$ = __webpack_require__(212), src$en$$ = __webpack_require__(215);\n\nsrc$core$$[\"default\"].__addLocaleData(src$en$$[\"default\"]);\nsrc$core$$[\"default\"].defaultLocale = 'en';\n\nexports[\"default\"] = src$core$$[\"default\"];\n\n//# sourceMappingURL=main.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-relativeformat/lib/main.js\n// module id = 211\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-relativeformat/lib/main.js?");
|
||
|
||
/***/ }),
|
||
/* 212 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar intl$messageformat$$ = __webpack_require__(200), src$diff$$ = __webpack_require__(213), src$es5$$ = __webpack_require__(214);\nexports[\"default\"] = RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (src$es5$$.isArray(locales)) {\n locales = locales.concat();\n }\n\n src$es5$$.defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n src$es5$$.defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n src$es5$$.defineProperty(this, '_locales', {value: locales});\n src$es5$$.defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n src$es5$$.defineProperty(this, '_messages', {value: src$es5$$.objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\nsrc$es5$$.defineProperty(RelativeFormat, '__localeData__', {value: src$es5$$.objCreate(null)});\nsrc$es5$$.defineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n intl$messageformat$$[\"default\"].__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\nsrc$es5$$.defineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\nsrc$es5$$.defineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new intl$messageformat$$[\"default\"](message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : src$es5$$.dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = src$diff$$[\"default\"](now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || src$es5$$.arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && src$es5$$.arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (src$es5$$.arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n\n//# sourceMappingURL=core.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-relativeformat/lib/core.js\n// module id = 212\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-relativeformat/lib/core.js?");
|
||
|
||
/***/ }),
|
||
/* 213 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexports[\"default\"] = function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n};\n\n//# sourceMappingURL=diff.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-relativeformat/lib/diff.js\n// module id = 213\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-relativeformat/lib/diff.js?");
|
||
|
||
/***/ }),
|
||
/* 214 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\nexports.defineProperty = defineProperty, exports.objCreate = objCreate, exports.arrIndexOf = arrIndexOf, exports.isArray = isArray, exports.dateNow = dateNow;\n\n//# sourceMappingURL=es5.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-relativeformat/lib/es5.js\n// module id = 214\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-relativeformat/lib/es5.js?");
|
||
|
||
/***/ }),
|
||
/* 215 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("// GENERATED FILE\n\"use strict\";\nexports[\"default\"] = {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n\n//# sourceMappingURL=en.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-relativeformat/lib/en.js\n// module id = 215\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-relativeformat/lib/en.js?");
|
||
|
||
/***/ }),
|
||
/* 216 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/* (ignored) */\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/locales (ignored)\n// module id = 216\n// module chunks = 0 1\n//# sourceURL=webpack:///./lib/locales_(ignored)?");
|
||
|
||
/***/ }),
|
||
/* 217 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(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(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/invariant/browser.js\n// module id = 217\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/invariant/browser.js?");
|
||
|
||
/***/ }),
|
||
/* 218 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports = module.exports = __webpack_require__(219)['default'];\nexports['default'] = exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-format-cache/index.js\n// module id = 218\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-format-cache/index.js?");
|
||
|
||
/***/ }),
|
||
/* 219 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\n\"use strict\";\nvar src$es5$$ = __webpack_require__(220);\nexports[\"default\"] = createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = src$es5$$.objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (src$es5$$.bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n\n//# sourceMappingURL=memoizer.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-format-cache/lib/memoizer.js\n// module id = 219\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-format-cache/lib/memoizer.js?");
|
||
|
||
/***/ }),
|
||
/* 220 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\n\"use strict\";\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexports.bind = bind, exports.defineProperty = defineProperty, exports.objCreate = objCreate;\n\n//# sourceMappingURL=es5.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/intl-format-cache/lib/es5.js\n// module id = 220\n// module chunks = 0 1\n//# sourceURL=webpack:///./~/intl-format-cache/lib/es5.js?");
|
||
|
||
/***/ }),
|
||
/* 221 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsControl = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Label = __webpack_require__(222);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _Comment = __webpack_require__(223);\n\nvar _controlsHelper = __webpack_require__(226);\n\nvar _UnSupportedComponent = __webpack_require__(227);\n\nvar _AddMoreDecorator = __webpack_require__(195);\n\nvar _AddMoreDecorator2 = _interopRequireDefault(_AddMoreDecorator);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _Util = __webpack_require__(169);\n\nvar _reactIntl = __webpack_require__(198);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ObsControl = exports.ObsControl = function (_addMoreDecorator) {\n _inherits(ObsControl, _addMoreDecorator);\n\n function ObsControl(props) {\n _classCallCheck(this, ObsControl);\n\n var _this = _possibleConstructorReturn(this, (ObsControl.__proto__ || Object.getPrototypeOf(ObsControl)).call(this, props));\n\n _this.state = {};\n _this.onChange = _this.onChange.bind(_this);\n _this.onCommentChange = _this.onCommentChange.bind(_this);\n _this.onAddControl = _this.onAddControl.bind(_this);\n _this.onRemoveControl = _this.onRemoveControl.bind(_this);\n _this.onValueChangeDone = _this.onValueChangeDone.bind(_this);\n _this.setAbnormal = _this.setAbnormal.bind(_this);\n return _this;\n }\n\n _createClass(ObsControl, [{\n key: 'onValueChangeDone',\n value: function onValueChangeDone() {\n if (this.props.onEventTrigger) {\n this.props.onEventTrigger(this.props.formFieldPath, 'onValueChange');\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(value, errors, calledOnMount) {\n var properties = this.props.metadata.properties;\n\n\n var isAbnormalPropertyEnabled = (0, _find2.default)(properties, function (val, key) {\n return key === 'abnormal' && val;\n });\n var isAbnormal = (0, _find2.default)(errors, function (err) {\n return err.type === _constants2.default.errorTypes.warning && err.message === _constants2.default.validations.allowRange;\n });\n var interpretation = isAbnormalPropertyEnabled && isAbnormal ? 'ABNORMAL' : null;\n if (calledOnMount) {\n interpretation = this.props.value.interpretation;\n }\n var obsValue = { value: value, comment: this.props.value.comment, interpretation: interpretation };\n this.props.onValueChanged(this.props.formFieldPath, obsValue, errors, this.onValueChangeDone);\n }\n }, {\n key: 'onCommentChange',\n value: function onCommentChange(comment) {\n this.props.onValueChanged(this.props.formFieldPath, { value: this.props.value.value, comment: comment, interpretation: this.props.value.interpretation }, undefined);\n }\n }, {\n key: 'displayObsControl',\n value: function displayObsControl(registeredComponent) {\n var _props = this.props,\n onControlAdd = _props.onControlAdd,\n hidden = _props.hidden,\n enabled = _props.enabled,\n metadata = _props.metadata,\n concept = _props.metadata.concept,\n validate = _props.validate,\n validateForm = _props.validateForm,\n formFieldPath = _props.formFieldPath,\n showNotification = _props.showNotification;\n\n var options = metadata.options || concept.answers;\n var conceptClass = concept.conceptClass,\n conceptHandler = concept.conceptHandler;\n\n var validations = (0, _controlsHelper.getValidations)(metadata.properties, concept.properties);\n var isAddMoreEnabled = (0, _find2.default)(metadata.properties, function (value, key) {\n return key === 'addMore' && value;\n });\n return _react2.default.createElement(registeredComponent, _extends({\n hidden: hidden,\n enabled: enabled,\n properties: metadata.properties,\n options: options,\n onChange: this.onChange,\n onControlAdd: onControlAdd,\n onEventTrigger: this.onEventTrigger,\n validate: validate,\n validateForm: validateForm,\n formFieldPath: formFieldPath,\n patientUuid: this.props.patientUuid,\n addMore: isAddMoreEnabled,\n validations: validations,\n value: this.props.value.value\n }, this._numericContext(metadata), {\n showNotification: showNotification,\n conceptClass: conceptClass,\n conceptHandler: conceptHandler\n }));\n }\n }, {\n key: '_numericContext',\n value: function _numericContext(metadata) {\n return {\n hiNormal: metadata.hiNormal,\n lowNormal: metadata.lowNormal,\n hiAbsolute: metadata.hiAbsolute,\n lowAbsolute: metadata.lowAbsolute\n };\n }\n }, {\n key: '_getUnits',\n value: function _getUnits(units) {\n return units ? '(' + units + ')' : '';\n }\n }, {\n key: 'displayLabel',\n value: function displayLabel() {\n var _props2 = this.props,\n enabled = _props2.enabled,\n hidden = _props2.hidden,\n _props2$metadata = _props2.metadata,\n properties = _props2$metadata.properties,\n label = _props2$metadata.label,\n units = _props2$metadata.units;\n\n var hideLabel = (0, _find2.default)(properties, function (value, key) {\n return key === 'hideLabel' && value;\n });\n var labelMetadata = _extends({}, label, { units: this._getUnits(units) });\n if (!hideLabel) {\n return _react2.default.createElement(_Label.Label, { enabled: enabled, hidden: hidden, metadata: labelMetadata });\n }\n return null;\n }\n }, {\n key: 'markMandatory',\n value: function markMandatory() {\n var properties = this.props.metadata.properties;\n\n var isMandatory = (0, _find2.default)(properties, function (value, key) {\n return key === 'mandatory' && value;\n });\n if (isMandatory) {\n return _react2.default.createElement(\n 'span',\n { className: 'form-builder-asterisk' },\n '*'\n );\n }\n return null;\n }\n }, {\n key: 'showHelperText',\n value: function showHelperText() {\n var _this2 = this;\n\n var description = this.props.metadata.concept.description;\n\n var showHintButton = this.state && this.state.showHintButton;\n if (description && description.value) {\n return _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('form-builder-tooltip-wrap fr', { active: showHintButton === true }) },\n _react2.default.createElement('i', { className: 'fa fa-question-circle form-builder-tooltip-trigger',\n onClick: function onClick() {\n return _this2.setState({ showHintButton: !showHintButton });\n }\n }),\n _react2.default.createElement(\n 'p',\n { className: 'form-builder-tooltip-description' },\n _react2.default.createElement('i', { className: 'fa fa-caret-down' }),\n _react2.default.createElement(\n 'span',\n { className: 'details hint' },\n _react2.default.createElement(_reactIntl.FormattedMessage, {\n defaultMessage: description.value,\n id: description.translationKey || 'defaultId'\n })\n )\n )\n );\n }\n return null;\n }\n }, {\n key: 'showComment',\n value: function showComment() {\n var properties = this.props.metadata.properties;\n\n var isAddCommentsEnabled = (0, _find2.default)(properties, function (value, key) {\n return key === 'notes' && value;\n });\n if (isAddCommentsEnabled) {\n var comment = this.props.value.comment;\n var value = this.props.value.value;\n var concept = this.props.metadata.concept;\n\n return _react2.default.createElement(_Comment.Comment, {\n comment: comment, conceptHandler: concept.conceptHandler,\n datatype: concept.datatype, onCommentChange: this.onCommentChange,\n value: value\n });\n }\n return null;\n }\n }, {\n key: 'isCreateByAddMore',\n value: function isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: 'showAbnormalButton',\n value: function showAbnormalButton() {\n var _props3 = this.props,\n properties = _props3.metadata.properties,\n value = _props3.value;\n\n var isAbnormal = (0, _find2.default)(properties, function (val, key) {\n return key === 'abnormal' && val;\n });\n var isAbnormalObs = value.interpretation === 'ABNORMAL';\n var abnormalClassName = (0, _classnames2.default)({ 'fa fa-ok': isAbnormalObs });\n if (isAbnormal) {\n return _react2.default.createElement(\n 'button',\n { className: 'abnormal-button', disabled: !value.value, onClick: this.setAbnormal },\n _react2.default.createElement('i', { className: abnormalClassName }),\n _react2.default.createElement(\n 'span',\n null,\n 'Abnormal'\n )\n );\n }\n return null;\n }\n }, {\n key: 'setAbnormal',\n value: function setAbnormal() {\n var value = this.props.value;\n\n if (value.value) {\n var interpretation = value.interpretation === 'ABNORMAL' ? null : 'ABNORMAL';\n this.props.onValueChanged(this.props.formFieldPath, { value: this.props.value.value, comment: this.props.value.comment, interpretation: interpretation }, undefined);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var concept = this.props.metadata.concept;\n\n var registeredComponent = _componentStore2.default.getRegisteredComponent(concept.datatype);\n var complexClass = _Util.Util.isComplexMediaConcept(concept) ? 'complex-component' : '';\n var addMoreComplexClass = complexClass && this.isCreateByAddMore() ? 'add-more-complex-component' : '';\n if (registeredComponent) {\n return _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('form-field-wrap clearfix', '' + complexClass) },\n _react2.default.createElement(\n 'div',\n { className: 'form-field-content-wrap' },\n _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('label-wrap fl', '' + addMoreComplexClass) },\n this.displayLabel(),\n this.markMandatory(),\n this.showHelperText()\n ),\n _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('obs-control-field') },\n this.displayObsControl(registeredComponent),\n this.showAbnormalButton(),\n this.showAddMore()\n )\n ),\n this.showComment()\n );\n }\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_UnSupportedComponent.UnSupportedComponent, {\n message: 'The component with concept datatype ' + concept.datatype + ' is not supported'\n })\n );\n }\n }]);\n\n return ObsControl;\n}((0, _AddMoreDecorator2.default)(_react.Component));\n\nObsControl.propTypes = {\n children: _propTypes2.default.array,\n collapse: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.shape({\n type: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.string.isRequired\n }).isRequired,\n properties: _propTypes2.default.object,\n type: _propTypes2.default.string.isRequired\n }),\n onControlAdd: _propTypes2.default.func,\n onControlRemove: _propTypes2.default.func,\n onValueChanged: _propTypes2.default.func.isRequired,\n showAddMore: _propTypes2.default.bool.isRequired,\n showNotification: _propTypes2.default.func.isRequired,\n showRemove: _propTypes2.default.bool.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n value: _propTypes2.default.object.isRequired\n};\n\nObsControl.defaultProps = {\n enabled: true,\n hidden: false,\n showAddMore: false,\n showRemove: false\n};\n\n_componentStore2.default.registerComponent('obsControl', ObsControl);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ObsControl.jsx\n// module id = 221\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/ObsControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 222 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Label = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _reactIntl = __webpack_require__(198);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/prefer-stateless-function */\n/* Needs this to attach refs as they cannot be attached to stateless functions. */\n\nvar Label = exports.Label = function (_Component) {\n _inherits(Label, _Component);\n\n function Label() {\n _classCallCheck(this, Label);\n\n return _possibleConstructorReturn(this, (Label.__proto__ || Object.getPrototypeOf(Label)).apply(this, arguments));\n }\n\n _createClass(Label, [{\n key: '_getUnits',\n value: function _getUnits(units) {\n return units ? ' ' + units : '';\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n enabled = _props.enabled,\n _props$metadata = _props.metadata,\n value = _props$metadata.value,\n units = _props$metadata.units;\n\n var disableClass = enabled ? '' : 'disabled-label';\n return _react2.default.createElement(\n 'label',\n {\n className: '' + disableClass\n },\n _react2.default.createElement(_reactIntl.FormattedMessage, {\n defaultMessage: value,\n id: this.props.metadata.translationKey || 'defaultId'\n }),\n this._getUnits(units)\n );\n }\n }]);\n\n return Label;\n}(_react.Component);\n\nLabel.propTypes = {\n enabled: _propTypes2.default.bool,\n hidden: _propTypes2.default.bool,\n metadata: _propTypes2.default.shape({\n type: _propTypes2.default.string.isRequired,\n units: _propTypes2.default.string,\n value: _propTypes2.default.string.isRequired,\n translationKey: _propTypes2.default.string\n })\n};\n\nLabel.defaultProps = {\n hidden: false,\n enabled: true\n};\n\n_componentStore2.default.registerComponent('label', Label);\n/* eslint-enable react/prefer-stateless-function */\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Label.jsx\n// module id = 222\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Label.jsx?");
|
||
|
||
/***/ }),
|
||
/* 223 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Comment = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactTextareaAutosize = __webpack_require__(224);\n\nvar _reactTextareaAutosize2 = _interopRequireDefault(_reactTextareaAutosize);\n\nvar _Util = __webpack_require__(169);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Comment = exports.Comment = function (_Component) {\n _inherits(Comment, _Component);\n\n function Comment(props) {\n _classCallCheck(this, Comment);\n\n var _this = _possibleConstructorReturn(this, (Comment.__proto__ || Object.getPrototypeOf(Comment)).call(this, props));\n\n _this.state = {\n showCommentSection: false,\n hasNote: props.comment && props.comment.length > 0\n };\n return _this;\n }\n\n _createClass(Comment, [{\n key: 'handleChange',\n value: function handleChange(e) {\n var value = e.target.value.trim() !== '' ? e.target.value.trim() : undefined;\n this.setState({\n hasNote: value && value.length > 0\n });\n this.props.onCommentChange(value);\n }\n }, {\n key: 'showCommentSection',\n value: function showCommentSection(isComplexMediaConcept) {\n var _this2 = this;\n\n if (this.state.showCommentSection || isComplexMediaConcept && this.props.value) {\n return _react2.default.createElement(\n 'div',\n { className: 'obs-comment-section-wrap' },\n _react2.default.createElement('div', { className: 'label-wrap' }),\n _react2.default.createElement(_reactTextareaAutosize2.default, {\n className: 'obs-comment-section fl',\n defaultValue: this.props.comment,\n maxLength: '255',\n onChange: function onChange(e) {\n return _this2.handleChange(e);\n },\n placeholder: 'Notes'\n })\n );\n }\n return null;\n }\n }, {\n key: 'showCommentButton',\n value: function showCommentButton(isComplexMediaConcept) {\n var _this3 = this;\n\n if (isComplexMediaConcept) {\n return '';\n }\n return _react2.default.createElement(\n 'button',\n {\n className: (0, _classnames2.default)('form-builder-comment-toggle', 'form-builder-comment-button-toggle', { active: this.state.showCommentSection === true,\n 'has-notes': this.state.hasNote === true }),\n onClick: function onClick() {\n return _this3.setState({ showCommentSection: !_this3.state.showCommentSection });\n }\n },\n _react2.default.createElement(\n 'i',\n { className: 'fa fa-file-o' },\n _react2.default.createElement('i', { className: 'fa fa-plus-circle' }),\n _react2.default.createElement('i', { className: 'fa fa-minus-circle' })\n ),\n _react2.default.createElement('i', { className: 'fa fa-file-text-o' })\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n conceptHandler = _props.conceptHandler,\n datatype = _props.datatype;\n\n var isComplexMediaConcept = _Util.Util.isComplexMediaConcept({ conceptHandler: conceptHandler, datatype: datatype });\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-comment-wrap' },\n this.showCommentButton(isComplexMediaConcept),\n this.showCommentSection(isComplexMediaConcept)\n );\n }\n }]);\n\n return Comment;\n}(_react.Component);\n\nComment.propTypes = {\n comment: _propTypes2.default.string,\n conceptHandler: _propTypes2.default.string,\n datatype: _propTypes2.default.string,\n onCommentChange: _propTypes2.default.func.isRequired,\n value: _propTypes2.default.string\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Comment.jsx\n// module id = 223\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Comment.jsx?");
|
||
|
||
/***/ }),
|
||
/* 224 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\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 _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _calculateNodeHeight2 = __webpack_require__(225);\n\nvar _calculateNodeHeight3 = _interopRequireDefault(_calculateNodeHeight2);\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n * <TextareaAutosize />\n */\n\nvar noop = function noop() {};\n\nvar TextareaAutosize = function (_React$Component) {\n _inherits(TextareaAutosize, _React$Component);\n\n function TextareaAutosize(props) {\n _classCallCheck(this, TextareaAutosize);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this._onRootDOMNode = function (node) {\n _this._rootDOMNode = node;\n if (_this.props.inputRef) _this.props.inputRef(node);\n };\n\n _this._onChange = function (event) {\n if (!_this._controlled) {\n _this._resizeComponent();\n }\n var _this$props = _this.props,\n valueLink = _this$props.valueLink,\n onChange = _this$props.onChange;\n\n if (valueLink) {\n valueLink.requestChange(event.target.value);\n } else {\n onChange(event);\n }\n };\n\n _this._resizeComponent = function () {\n if (!_this._rootDOMNode) {\n return;\n }\n\n var _calculateNodeHeight = (0, _calculateNodeHeight3.default)(_this._rootDOMNode, _this.props.useCacheForDOMMeasurements, _this.props.rows || _this.props.minRows, _this.props.maxRows),\n height = _calculateNodeHeight.height,\n minHeight = _calculateNodeHeight.minHeight,\n maxHeight = _calculateNodeHeight.maxHeight;\n\n if (_this.state.height !== height || _this.state.minHeight !== minHeight || _this.state.maxHeight !== maxHeight) {\n _this.setState({ height: height, minHeight: minHeight, maxHeight: maxHeight });\n }\n };\n\n _this.state = {\n height: props.style && props.style.height || 0,\n minHeight: -Infinity,\n maxHeight: Infinity\n };\n\n _this._controlled = typeof props.value === 'string';\n return _this;\n }\n\n TextareaAutosize.prototype.render = function render() {\n var _props = this.props,\n valueLink = _props.valueLink,\n _minRows = _props.minRows,\n _maxRows = _props.maxRows,\n _onHeightChange = _props.onHeightChange,\n _useCacheForDOMMeasurements = _props.useCacheForDOMMeasurements,\n _inputRef = _props.inputRef,\n props = _objectWithoutProperties(_props, ['valueLink', 'minRows', 'maxRows', 'onHeightChange', 'useCacheForDOMMeasurements', 'inputRef']);\n\n if ((typeof valueLink === 'undefined' ? 'undefined' : _typeof(valueLink)) === 'object') {\n props.value = valueLink.value;\n }\n\n props.style = _extends({}, props.style, {\n height: this.state.height\n });\n\n var maxHeight = Math.max(props.style.maxHeight || Infinity, this.state.maxHeight);\n\n if (maxHeight < this.state.height) {\n props.style.overflow = 'hidden';\n }\n\n return _react2.default.createElement('textarea', _extends({}, props, {\n onChange: this._onChange,\n ref: this._onRootDOMNode\n }));\n };\n\n TextareaAutosize.prototype.componentDidMount = function componentDidMount() {\n this._resizeComponent();\n window.addEventListener('resize', this._resizeComponent);\n };\n\n TextareaAutosize.prototype.componentWillReceiveProps = function componentWillReceiveProps() {\n // Re-render with the new content then recalculate the height as required.\n this._clearNextFrame();\n this._onNextFrameActionId = onNextFrame(this._resizeComponent);\n };\n\n TextareaAutosize.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Invoke callback when old height does not equal to new one.\n if (this.state.height !== prevState.height) {\n this.props.onHeightChange(this.state.height);\n }\n };\n\n TextareaAutosize.prototype.componentWillUnmount = function componentWillUnmount() {\n // Remove any scheduled events to prevent manipulating the node after it's\n // been unmounted.\n this._clearNextFrame();\n window.removeEventListener('resize', this._resizeComponent);\n };\n\n TextareaAutosize.prototype._clearNextFrame = function _clearNextFrame() {\n if (this._onNextFrameActionId) {\n clearNextFrameAction(this._onNextFrameActionId);\n }\n };\n\n /**\n * Put focus on a <textarea /> DOM element.\n */\n TextareaAutosize.prototype.focus = function focus() {\n this._rootDOMNode.focus();\n };\n\n /**\n * Shifts focus away from a <textarea /> DOM element.\n */\n\n\n TextareaAutosize.prototype.blur = function blur() {\n this._rootDOMNode.blur();\n };\n\n _createClass(TextareaAutosize, [{\n key: 'value',\n\n\n /**\n * Read the current value of <textarea /> from DOM.\n */\n get: function get() {\n return this._rootDOMNode.value;\n }\n\n /**\n * Set the current value of <textarea /> DOM node.\n */\n ,\n set: function set(val) {\n this._rootDOMNode.value = val;\n }\n\n /**\n * Read the current selectionStart of <textarea /> from DOM.\n */\n\n }, {\n key: 'selectionStart',\n get: function get() {\n return this._rootDOMNode.selectionStart;\n }\n\n /**\n * Set the current selectionStart of <textarea /> DOM node.\n */\n ,\n set: function set(selectionStart) {\n this._rootDOMNode.selectionStart = selectionStart;\n }\n\n /**\n * Read the current selectionEnd of <textarea /> from DOM.\n */\n\n }, {\n key: 'selectionEnd',\n get: function get() {\n return this._rootDOMNode.selectionEnd;\n }\n\n /**\n * Set the current selectionEnd of <textarea /> DOM node.\n */\n ,\n set: function set(selectionEnd) {\n this._rootDOMNode.selectionEnd = selectionEnd;\n }\n }]);\n\n return TextareaAutosize;\n}(_react2.default.Component);\n\nTextareaAutosize.propTypes = {\n /**\n * Current textarea value.\n */\n value: _propTypes2.default.string,\n\n /**\n * Callback on value change.\n */\n onChange: _propTypes2.default.func,\n\n /**\n * Callback on height changes.\n */\n onHeightChange: _propTypes2.default.func,\n\n /**\n * Try to cache DOM measurements performed by component so that we don't\n * touch DOM when it's not needed.\n *\n * This optimization doesn't work if we dynamically style <textarea />\n * component.\n */\n useCacheForDOMMeasurements: _propTypes2.default.bool,\n\n /**\n * Minimal numbder of rows to show.\n */\n rows: _propTypes2.default.number,\n\n /**\n * Alias for `rows`.\n */\n minRows: _propTypes2.default.number,\n\n /**\n * Maximum number of rows to show.\n */\n maxRows: _propTypes2.default.number,\n\n /**\n * Allows an owner to retrieve the DOM node.\n */\n inputRef: _propTypes2.default.func\n};\nTextareaAutosize.defaultProps = {\n onChange: noop,\n onHeightChange: noop,\n useCacheForDOMMeasurements: false\n};\nexports.default = TextareaAutosize;\n\n\nfunction onNextFrame(cb) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(cb);\n }\n return window.setTimeout(cb, 1);\n}\n\nfunction clearNextFrameAction(nextFrameId) {\n if (window.cancelAnimationFrame) {\n window.cancelAnimationFrame(nextFrameId);\n } else {\n window.clearTimeout(nextFrameId);\n }\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-textarea-autosize/lib/index.js\n// module id = 224\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-textarea-autosize/lib/index.js?");
|
||
|
||
/***/ }),
|
||
/* 225 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports.default = calculateNodeHeight;\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nvar browser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar isIE = browser ? !!document.documentElement.currentStyle : false;\nvar boxSizingProp = function () {\n if (!browser) {\n return 'box-sizing';\n }\n var documentStyle = window.getComputedStyle(document.documentElement);\n // TODO: remove prefixed - they are probably obsolete, were introduced in by df79cf502630744d40233b64cad01770e5584610 in 2014\n return documentStyle.getPropertyValue('box-sizing') ? 'box-sizing' : documentStyle.getPropertyValue('-moz-box-sizing') ? '-moz-box-sizing' : documentStyle.getPropertyValue('-webkit-box-sizing') ? '-webkit-box-sizing' : 'box-sizing';\n}();\n\nvar HIDDEN_TEXTAREA_STYLE = {\n 'min-height': '0',\n 'max-height': 'none',\n 'height': '0',\n 'visibility': 'hidden',\n 'overflow': 'hidden',\n 'position': 'absolute',\n 'z-index': '-1000',\n 'top': '0',\n 'right': '0'\n};\n\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', boxSizingProp];\n\nvar computedStyleCache = {};\nvar hiddenTextarea = void 0;\n\nfunction calculateNodeHeight(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n } else if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n\n\n Object.keys(sizingStyle).map(function (key) {\n hiddenTextarea.style[key] = sizingStyle[key];\n });\n Object.keys(HIDDEN_TEXTAREA_STYLE).map(function (key) {\n hiddenTextarea.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important');\n });\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || 'x';\n\n var minHeight = -Infinity;\n var maxHeight = Infinity;\n var height = hiddenTextarea.scrollHeight;\n\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height = height + borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height = height - paddingSize;\n }\n\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = 'x';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n }\n }\n return { height: height, minHeight: minHeight, maxHeight: maxHeight };\n}\n\nfunction calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n // TODO: generate id in constructor + clear cache in componentWillUnmount\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n\n var style = window.getComputedStyle(node);\n\n var sizingStyle = SIZING_STYLE.reduce(function (obj, name) {\n obj[name] = style.getPropertyValue(name);\n return obj;\n }, {});\n\n var boxSizing = sizingStyle[boxSizingProp];\n\n // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n if (isIE && boxSizing === 'border-box') {\n sizingStyle.width = parseFloat(sizingStyle.width) + parseFloat(style['border-right-width']) + parseFloat(style['border-left-width']) + parseFloat(style['padding-right']) + parseFloat(style['padding-left']) + 'px';\n }\n\n var paddingSize = parseFloat(sizingStyle['padding-bottom']) + parseFloat(sizingStyle['padding-top']);\n\n var borderSize = parseFloat(sizingStyle['border-bottom-width']) + parseFloat(sizingStyle['border-top-width']);\n\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n\n return nodeInfo;\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-textarea-autosize/lib/calculateNodeHeight.js\n// module id = 225\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-textarea-autosize/lib/calculateNodeHeight.js?");
|
||
|
||
/***/ }),
|
||
/* 226 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getValidations = getValidations;\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getValidations(properties, conceptProperties) {\n var validations = [];\n if (properties && properties.mandatory) validations.push(_constants2.default.validations.mandatory);\n if (conceptProperties && conceptProperties.allowDecimal === false) {\n validations.push(_constants2.default.validations.allowDecimal);\n }\n if (properties && properties.allowFutureDates === false) {\n validations.push(_constants2.default.validations.allowFutureDates);\n }\n return validations;\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/controlsHelper.js\n// module id = 226\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/controlsHelper.js?");
|
||
|
||
/***/ }),
|
||
/* 227 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UnSupportedComponent = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar UnSupportedComponent = exports.UnSupportedComponent = function (_PureComponent) {\n _inherits(UnSupportedComponent, _PureComponent);\n\n function UnSupportedComponent() {\n _classCallCheck(this, UnSupportedComponent);\n\n return _possibleConstructorReturn(this, (UnSupportedComponent.__proto__ || Object.getPrototypeOf(UnSupportedComponent)).apply(this, arguments));\n }\n\n _createClass(UnSupportedComponent, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'label',\n null,\n this.props.message\n );\n }\n }]);\n\n return UnSupportedComponent;\n}(_react.PureComponent);\n\nUnSupportedComponent.propTypes = {\n message: _propTypes2.default.string.isRequired\n};\n\n_componentStore2.default.registerComponent('unsupported', UnSupportedComponent);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/UnSupportedComponent.jsx\n// module id = 227\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/UnSupportedComponent.jsx?");
|
||
|
||
/***/ }),
|
||
/* 228 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TextBox = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Validator = __webpack_require__(229);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _reactTextareaAutosize = __webpack_require__(224);\n\nvar _reactTextareaAutosize2 = _interopRequireDefault(_reactTextareaAutosize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBox = exports.TextBox = function (_Component) {\n _inherits(TextBox, _Component);\n\n function TextBox(props) {\n _classCallCheck(this, TextBox);\n\n var _this = _possibleConstructorReturn(this, (TextBox.__proto__ || Object.getPrototypeOf(TextBox)).call(this, props));\n\n var errors = _this._getErrors(props.value) || [];\n var hasErrors = _this._isCreateByAddMore() ? _this._hasErrors(errors) : false;\n _this.state = { hasErrors: hasErrors };\n return _this;\n }\n\n _createClass(TextBox, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n value = _props.value,\n validateForm = _props.validateForm;\n\n if (this.state.hasErrors || typeof value !== 'undefined' || validateForm) {\n this.props.onChange(value, this._getErrors(value));\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.validate) {\n var errors = this._getErrors(nextProps.value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n this.isValueChanged = this.props.value !== nextProps.value;\n if (this.props.enabled !== nextProps.enabled || this.isValueChanged || this.state.hasErrors !== nextState.hasErrors) {\n return true;\n }\n return false;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.props.value);\n if (this._hasErrors(errors)) {\n this.props.onChange(this.props.value, errors);\n }\n if (this.isValueChanged) {\n this.props.onChange(this.props.value, errors);\n }\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n var validations = this.props.validations;\n var controlDetails = { validations: validations, value: value };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: 'handleChange',\n value: function handleChange(e) {\n var value = e.target.value;\n var errors = this._getErrors(value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n this.props.onChange(value, errors);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var defaultValue = this.props.value || '';\n return _react2.default.createElement(\n 'div',\n { className: 'obs-comment-section-wrap' },\n _react2.default.createElement(_reactTextareaAutosize2.default, {\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n onChange: function onChange(e) {\n return _this2.handleChange(e);\n },\n value: defaultValue\n })\n );\n }\n }]);\n\n return TextBox;\n}(_react.Component);\n\nTextBox.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\nTextBox.defaultProps = {\n enabled: true\n};\n\n_componentStore2.default.registerComponent('text', TextBox);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/TextBox.jsx\n// module id = 228\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/TextBox.jsx?");
|
||
|
||
/***/ }),
|
||
/* 229 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Validator = undefined;\n\nvar _Validator$propertyVa;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _get = __webpack_require__(111);\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _isUndefined = __webpack_require__(230);\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _Error = __webpack_require__(231);\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Validator = exports.Validator = function () {\n function Validator() {\n _classCallCheck(this, Validator);\n }\n\n _createClass(Validator, null, [{\n key: 'nonEmpty',\n value: function nonEmpty(value) {\n if (value === undefined || value === null || value.length === 0) {\n return false;\n }\n return true;\n }\n }, {\n key: 'mandatory',\n value: function mandatory(obsValue) {\n if (this.nonEmpty(obsValue)) return undefined;\n return new _Error.Error({ message: _constants2.default.validations.mandatory });\n }\n }, {\n key: 'allowDecimal',\n value: function allowDecimal(obsValue) {\n if ((0, _isUndefined2.default)(obsValue) || obsValue % 1 === 0) return undefined;\n return new _Error.Error({ message: _constants2.default.validations.allowDecimal });\n }\n }, {\n key: 'allowRange',\n value: function allowRange(value, params) {\n var error = new _Error.Error({\n type: _constants2.default.errorTypes.warning,\n message: _constants2.default.validations.allowRange\n });\n if ((0, _isUndefined2.default)(params)) return undefined;\n return Validator.rangeValidation(value, params.minNormal, params.maxNormal) ? error : undefined;\n }\n }, {\n key: 'minMaxRange',\n value: function minMaxRange(value, params) {\n var error = new _Error.Error({\n type: _constants2.default.errorTypes.error,\n message: _constants2.default.validations.minMaxRange\n });\n if ((0, _isUndefined2.default)(params)) return undefined;\n return Validator.rangeValidation(value, params.minAbsolute, params.maxAbsolute) ? error : undefined;\n }\n }, {\n key: 'rangeValidation',\n value: function rangeValidation(value, minRange, maxRange) {\n if ((0, _isUndefined2.default)(value)) return undefined;\n\n if (minRange && value < Number.parseFloat(minRange) || maxRange && value > Number.parseFloat(maxRange)) {\n return true;\n }\n return undefined;\n }\n }, {\n key: 'allowFutureDates',\n value: function allowFutureDates(obsValue) {\n if ((0, _isUndefined2.default)(obsValue)) return undefined;\n if (Date.now() < new Date(obsValue).getTime()) {\n return new _Error.Error({ message: _constants2.default.validations.allowFutureDates });\n }\n return undefined;\n }\n }, {\n key: 'getErrors',\n value: function getErrors(controlDetails) {\n var _this = this;\n\n var validations = controlDetails.validations,\n value = controlDetails.value,\n params = controlDetails.params;\n\n var errors = (0, _map2.default)(validations, function (propertyName) {\n var validator = (0, _get2.default)(_this.propertyValidators, propertyName);\n if (validator) return validator(value, params);\n return undefined;\n });\n\n return errors.filter(function (error) {\n return error !== undefined;\n });\n }\n }]);\n\n return Validator;\n}();\n\nValidator.propertyValidators = (_Validator$propertyVa = {}, _defineProperty(_Validator$propertyVa, _constants2.default.validations.mandatory, function (obsVal) {\n return Validator.mandatory(obsVal);\n}), _defineProperty(_Validator$propertyVa, _constants2.default.validations.allowDecimal, function (obsVal) {\n return Validator.allowDecimal(obsVal);\n}), _defineProperty(_Validator$propertyVa, _constants2.default.validations.allowRange, function (obsVal, params) {\n return Validator.allowRange(obsVal, params);\n}), _defineProperty(_Validator$propertyVa, _constants2.default.validations.minMaxRange, function (obsVal, params) {\n return Validator.minMaxRange(obsVal, params);\n}), _defineProperty(_Validator$propertyVa, _constants2.default.validations.allowFutureDates, function (obsValue) {\n return Validator.allowFutureDates(obsValue);\n}), _Validator$propertyVa);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Validator.js\n// module id = 229\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/Validator.js?");
|
||
|
||
/***/ }),
|
||
/* 230 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isUndefined.js\n// module id = 230\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/isUndefined.js?");
|
||
|
||
/***/ }),
|
||
/* 231 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Error = undefined;\n\nvar _immutable = __webpack_require__(172);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Error = exports.Error = new _immutable.Record({\n type: _constants2.default.errorTypes.error,\n message: undefined\n});\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/Error.js\n// module id = 231\n// module chunks = 0\n//# sourceURL=webpack:///./src/Error.js?");
|
||
|
||
/***/ }),
|
||
/* 232 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NumericBox = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Validator = __webpack_require__(229);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _NumericBoxDesigner = __webpack_require__(233);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NumericBox = exports.NumericBox = function (_Component) {\n _inherits(NumericBox, _Component);\n\n function NumericBox(props) {\n _classCallCheck(this, NumericBox);\n\n var _this = _possibleConstructorReturn(this, (NumericBox.__proto__ || Object.getPrototypeOf(NumericBox)).call(this, props));\n\n _this.defaultValidations = [_constants2.default.validations.allowRange, _constants2.default.validations.minMaxRange];\n var errors = _this._getErrors(props.value) || [];\n var hasWarnings = _this._hasErrors(errors, _constants2.default.errorTypes.warning);\n var hasErrors = _this._isCreateByAddMore() ? _this._hasErrors(errors, _constants2.default.errorTypes.error) : false;\n _this.state = { hasErrors: hasErrors, hasWarnings: hasWarnings };\n return _this;\n }\n\n _createClass(NumericBox, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n value = _props.value,\n validateForm = _props.validateForm;\n\n this.input.value = this.props.value;\n if (this.state.hasErrors || typeof value !== 'undefined' || validateForm) {\n this.props.onChange(value, this._getErrors(value), true);\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.validate) {\n var errors = this._getErrors(nextProps.value);\n var hasErrors = this._hasErrors(errors, _constants2.default.errorTypes.error);\n var hasWarnings = this._hasErrors(errors, _constants2.default.errorTypes.warning);\n this.setState({ hasErrors: hasErrors, hasWarnings: hasWarnings });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n var valueToString = void 0;\n if (this.props.value !== undefined) {\n valueToString = this.props.value.toString();\n }\n return valueToString !== nextProps.value || this.state.hasErrors !== nextState.hasErrors || this.props.enabled !== nextProps.enabled;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.props.value);\n if (this._hasErrors(errors, _constants2.default.errorTypes.error)) {\n this.props.onChange(this.props.value, errors);\n }\n var valueToString = void 0;\n if (this.props.value !== undefined) {\n valueToString = this.props.value.toString();\n }\n if (this.input.value !== valueToString) {\n this.updateInputByPropsValue();\n this.props.onChange(this.props.value, errors);\n }\n }\n }, {\n key: 'updateInputByPropsValue',\n value: function updateInputByPropsValue() {\n this.input.value = this.props.value;\n }\n }, {\n key: 'handleChange',\n value: function handleChange(e) {\n var value = e.target.value;\n value = value && value.trim() !== '' ? value.trim() : undefined;\n var errors = this._getErrors(value);\n var hasErrors = this._hasErrors(errors, _constants2.default.errorTypes.error);\n var hasWarnings = this._hasErrors(errors, _constants2.default.errorTypes.warning);\n this.setState({ hasErrors: hasErrors, hasWarnings: hasWarnings });\n this.props.onChange(value, errors);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors, errorType) {\n return !(0, _isEmpty2.default)(errors.filter(function (error) {\n return error.type === errorType;\n }));\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n var validations = this.defaultValidations.concat(this.props.validations);\n var params = {\n minNormal: this.props.lowNormal,\n maxNormal: this.props.hiNormal,\n minAbsolute: this.props.lowAbsolute,\n maxAbsolute: this.props.hiAbsolute\n };\n var controlDetails = { validations: validations, value: value, params: params };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props2 = this.props,\n lowNormal = _props2.lowNormal,\n hiNormal = _props2.hiNormal;\n\n if (_NumericBoxDesigner.NumericBoxDesigner.getRange(lowNormal, hiNormal) !== '') {\n return _react2.default.createElement(\n 'div',\n { className: 'fl' },\n _react2.default.createElement('input', {\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }, { 'form-builder-warning': this.state.hasWarnings }),\n disabled: !this.props.enabled,\n onChange: function onChange(e) {\n return _this2.handleChange(e);\n },\n ref: function ref(elem) {\n _this2.input = elem;\n },\n type: 'number'\n }),\n _react2.default.createElement(\n 'span',\n { className: 'form-builder-valid-range' },\n _NumericBoxDesigner.NumericBoxDesigner.getRange(lowNormal, hiNormal)\n )\n );\n }\n return _react2.default.createElement(\n 'div',\n { className: 'fl' },\n _react2.default.createElement('input', {\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n onChange: function onChange(e) {\n return _this2.handleChange(e);\n },\n ref: function ref(elem) {\n _this2.input = elem;\n },\n type: 'number'\n })\n );\n }\n }]);\n\n return NumericBox;\n}(_react.Component);\n\nNumericBox.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string.isRequired,\n hiAbsolute: _propTypes2.default.number,\n hiNormal: _propTypes2.default.number,\n lowAbsolute: _propTypes2.default.number,\n lowNormal: _propTypes2.default.number,\n onChange: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\n_componentStore2.default.registerComponent('numeric', NumericBox);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/NumericBox.jsx\n// module id = 232\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/NumericBox.jsx?");
|
||
|
||
/***/ }),
|
||
/* 233 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NumericBoxDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NumericBoxDesigner = exports.NumericBoxDesigner = function (_Component) {\n _inherits(NumericBoxDesigner, _Component);\n\n function NumericBoxDesigner() {\n _classCallCheck(this, NumericBoxDesigner);\n\n return _possibleConstructorReturn(this, (NumericBoxDesigner.__proto__ || Object.getPrototypeOf(NumericBoxDesigner)).apply(this, arguments));\n }\n\n _createClass(NumericBoxDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.metadata;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n lowNormal = _props.lowNormal,\n hiNormal = _props.hiNormal;\n\n if (NumericBoxDesigner.getRange(lowNormal, hiNormal) !== '') {\n return _react2.default.createElement(\n 'div',\n { className: 'fl' },\n _react2.default.createElement('input', { type: 'number' }),\n _react2.default.createElement(\n 'span',\n { className: 'form-builder-valid-range' },\n NumericBoxDesigner.getRange(lowNormal, hiNormal)\n )\n );\n }\n return _react2.default.createElement(\n 'div',\n { className: 'fl' },\n _react2.default.createElement('input', { type: 'number' })\n );\n }\n }]);\n\n return NumericBoxDesigner;\n}(_react.Component);\n\nNumericBoxDesigner.propTypes = {\n hiAbsolute: _propTypes2.default.number,\n hiNormal: _propTypes2.default.number,\n lowAbsolute: _propTypes2.default.number,\n lowNormal: _propTypes2.default.number,\n metadata: _propTypes2.default.shape({\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nNumericBoxDesigner.getRange = function (lowNormal, hiNormal) {\n if (lowNormal && hiNormal) {\n return '(' + lowNormal + ' - ' + hiNormal + ')';\n } else if (lowNormal) {\n return '(> ' + lowNormal + ')';\n } else if (hiNormal) {\n return '(< ' + hiNormal + ')';\n }\n return '';\n};\n\nvar descriptor = {\n control: NumericBoxDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'abnormal',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('numeric', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/NumericBoxDesigner.jsx\n// module id = 233\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/NumericBoxDesigner.jsx?");
|
||
|
||
/***/ }),
|
||
/* 234 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ComplexControl = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ComplexControl = exports.ComplexControl = function (_PureComponent) {\n _inherits(ComplexControl, _PureComponent);\n\n function ComplexControl() {\n _classCallCheck(this, ComplexControl);\n\n return _possibleConstructorReturn(this, (ComplexControl.__proto__ || Object.getPrototypeOf(ComplexControl)).apply(this, arguments));\n }\n\n _createClass(ComplexControl, [{\n key: 'render',\n value: function render() {\n var conceptHandler = this.props.conceptHandler;\n\n var registeredComplexControl = _componentStore2.default.getRegisteredComponent(conceptHandler);\n\n if (registeredComplexControl) {\n return _react2.default.createElement(registeredComplexControl, _extends({}, this.props));\n }\n return null;\n }\n }]);\n\n return ComplexControl;\n}(_react.PureComponent);\n\nComplexControl.propTypes = {\n addMore: _propTypes2.default.bool,\n conceptHandler: _propTypes2.default.string.isRequired,\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n onControlAdd: _propTypes2.default.func.isRequired,\n patientUuid: _propTypes2.default.string,\n properties: _propTypes2.default.object.isRequired,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\nComplexControl.defaultProps = {\n enabled: true,\n addMore: false\n};\n\n_componentStore2.default.registerComponent('complex', ComplexControl);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ComplexControl.jsx\n// module id = 234\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/ComplexControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 235 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsGroupControl = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _controlsParser = __webpack_require__(11);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _AddMoreDecorator = __webpack_require__(195);\n\nvar _AddMoreDecorator2 = _interopRequireDefault(_AddMoreDecorator);\n\nvar _immutable = __webpack_require__(172);\n\nvar _reactIntl = __webpack_require__(198);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ObsGroupControl = exports.ObsGroupControl = function (_addMoreDecorator) {\n _inherits(ObsGroupControl, _addMoreDecorator);\n\n function ObsGroupControl(props) {\n _classCallCheck(this, ObsGroupControl);\n\n var _this = _possibleConstructorReturn(this, (ObsGroupControl.__proto__ || Object.getPrototypeOf(ObsGroupControl)).call(this, props));\n\n var collapse = _this.props.collapse;\n\n _this.state = { errors: [], collapse: collapse };\n _this.onChange = _this.onChange.bind(_this);\n _this.onControlAdd = _this.onControlAdd.bind(_this);\n _this.onControlRemove = _this.onControlRemove.bind(_this);\n _this._onCollapse = _this._onCollapse.bind(_this);\n _this.onAddControl = _this.onAddControl.bind(_this);\n _this.onRemoveControl = _this.onRemoveControl.bind(_this);\n return _this;\n }\n\n _createClass(ObsGroupControl, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.collapse !== undefined && (nextProps.collapse !== this.props.collapse || nextProps.collapse !== this.state.collapse)) {\n this.setState({ collapse: nextProps.collapse });\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(formFieldPath, value, errors, onActionDone) {\n this.props.onValueChanged(formFieldPath, value, errors, onActionDone);\n }\n }, {\n key: 'onControlAdd',\n value: function onControlAdd(formFieldPath) {\n this.props.onControlAdd(formFieldPath);\n }\n }, {\n key: 'onControlRemove',\n value: function onControlRemove(formFieldPath) {\n this.props.onControlRemove(formFieldPath);\n }\n }, {\n key: '_onCollapse',\n value: function _onCollapse() {\n var collapse = !this.state.collapse;\n this.setState({ collapse: collapse });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n collapse = _props.collapse,\n formName = _props.formName,\n formVersion = _props.formVersion,\n label = _props.metadata.label,\n onEventTrigger = _props.onEventTrigger,\n validate = _props.validate,\n validateForm = _props.validateForm,\n patientUuid = _props.patientUuid,\n showNotification = _props.showNotification;\n\n var childProps = {\n collapse: collapse,\n enabled: this.props.enabled,\n formName: formName,\n formVersion: formVersion,\n validate: validate,\n validateForm: validateForm,\n onControlAdd: this.onControlAdd,\n onControlRemove: this.onControlRemove,\n onEventTrigger: onEventTrigger,\n onValueChanged: this.onChange,\n patientUuid: patientUuid,\n showNotification: showNotification\n };\n var groupedRowControls = (0, _controlsParser.getGroupedControls)(this.props.metadata.controls, 'row');\n var toggleClass = 'form-builder-toggle ' + (0, _classnames2.default)({ active: !this.state.collapse });\n var obsGroupClass = this.state.collapse ? 'closing-group-controls' : 'active-group-controls';\n var disableClass = this.props.enabled ? '' : ' disabled';\n var hiddenClass = !this.props.hidden ? '' : 'hidden';\n return _react2.default.createElement(\n 'fieldset',\n { className: (0, _classnames2.default)('form-builder-fieldset', '' + hiddenClass) },\n _react2.default.createElement(\n 'legend',\n { className: '' + toggleClass + disableClass, onClick: this._onCollapse },\n _react2.default.createElement('i', { className: 'fa fa-caret-down' }),\n _react2.default.createElement('i', { className: 'fa fa-caret-right' }),\n _react2.default.createElement(\n 'strong',\n null,\n _react2.default.createElement(_reactIntl.FormattedMessage, {\n defaultMessage: label.value,\n id: label.translationKey || 'defaultId'\n })\n )\n ),\n this.showAddMore(),\n _react2.default.createElement(\n 'div',\n { className: 'obsGroup-controls ' + obsGroupClass + disableClass },\n (0, _controlsParser.displayRowControls)(groupedRowControls, this.props.children.toArray(), childProps)\n )\n );\n }\n }]);\n\n return ObsGroupControl;\n}((0, _AddMoreDecorator2.default)(_react.Component));\n\nObsGroupControl.propTypes = {\n children: _propTypes2.default.any,\n collapse: _propTypes2.default.bool,\n formName: _propTypes2.default.string.isRequired,\n formVersion: _propTypes2.default.string.isRequired,\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.shape({\n type: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.string.isRequired\n }).isRequired,\n properties: _propTypes2.default.object,\n type: _propTypes2.default.string.isRequired,\n controls: _propTypes2.default.array\n }),\n onControlAdd: _propTypes2.default.func,\n onControlRemove: _propTypes2.default.func,\n onEventTrigger: _propTypes2.default.func,\n onValueChanged: _propTypes2.default.func.isRequired,\n patientUuid: _propTypes2.default.string,\n showAddMore: _propTypes2.default.bool.isRequired,\n showNotification: _propTypes2.default.func.isRequired,\n showRemove: _propTypes2.default.bool.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n value: _propTypes2.default.object.isRequired\n};\n\nObsGroupControl.defaultProps = {\n enabled: true,\n hidden: false,\n showAddMore: false,\n showRemove: false,\n children: _immutable.List.of([])\n};\n\n_componentStore2.default.registerComponent('obsGroupControl', ObsGroupControl);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ObsGroupControl.jsx\n// module id = 235\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/ObsGroupControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 236 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AutoComplete = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSelect = __webpack_require__(237);\n\nvar _reactSelect2 = _interopRequireDefault(_reactSelect);\n\nvar _httpInterceptor = __webpack_require__(253);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _get = __webpack_require__(111);\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _Validator = __webpack_require__(229);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _isEqual = __webpack_require__(255);\n\nvar _isEqual2 = _interopRequireDefault(_isEqual);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AutoComplete = exports.AutoComplete = function (_Component) {\n _inherits(AutoComplete, _Component);\n\n function AutoComplete(props) {\n _classCallCheck(this, AutoComplete);\n\n var _this = _possibleConstructorReturn(this, (AutoComplete.__proto__ || Object.getPrototypeOf(AutoComplete)).call(this, props));\n\n _this.optionsUrl = props.optionsUrl;\n _this.childRef = undefined;\n _this.getValue = _this.getValue.bind(_this);\n _this.getOptions = _this.getOptions.bind(_this);\n _this.handleChange = _this.handleChange.bind(_this);\n _this.onInputChange = _this.onInputChange.bind(_this);\n _this.handleFocus = _this.handleFocus.bind(_this);\n _this.storeChildRef = _this.storeChildRef.bind(_this);\n var errors = _this._getErrors(props.value) || [];\n var hasErrors = _this._isCreateByAddMore() ? _this._hasErrors(errors) : false;\n _this.state = {\n value: (0, _get2.default)(props, 'value'),\n hasErrors: hasErrors,\n options: [],\n noResultsText: ''\n };\n return _this;\n }\n\n _createClass(AutoComplete, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n if (!this.props.asynchronous && this.props.minimumInput === 0) {\n this.setState({ options: this.props.options });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.state.hasErrors || this.props.value !== undefined || this.props.validateForm) {\n this.props.onValueChange(this.props.value, this._getErrors(this.props.value));\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var value = (0, _get2.default)(nextProps, 'value');\n var errors = this._getErrors(value);\n var hasErrors = this._hasErrors(errors);\n var options = this.state.options !== nextProps.options && !this.props.searchable ? nextProps.options : this.state.options;\n this.setState({ value: value, hasErrors: hasErrors, options: options });\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _isEqual2.default)(this.props.value, nextProps.value) || !(0, _isEqual2.default)(this.state.value, nextState.value) || !(0, _isEqual2.default)(this.props.searchable, nextProps.searchable) || this.state.hasErrors !== nextState.hasErrors || !(0, _isEqual2.default)(this.state.options, nextState.options) || this.state.noResultsText !== nextState.noResultsText || this.props.enabled !== nextProps.enabled;\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextState) {\n return !(0, _isEqual2.default)(this.state.options, nextState.options) || this.state.hasErrors !== nextState.hasErrors;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.state.value);\n if (this._hasErrors(errors)) {\n this.props.onValueChange(this.state.value, errors);\n }\n }\n }, {\n key: 'onInputChange',\n value: function onInputChange(input) {\n if (input.length >= this.props.minimumInput) {\n this.setState({ options: this.props.options });\n this.setState({ noResultsText: 'No Results Found' });\n return;\n }\n this.setState({ noResultsText: 'Type to search' });\n this.setState({ options: [] });\n }\n }, {\n key: 'getOptions',\n value: function getOptions() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var _props = this.props,\n optionsUrl = _props.optionsUrl,\n minimumInput = _props.minimumInput;\n\n if (input.length >= minimumInput) {\n return _httpInterceptor.httpInterceptor.get(optionsUrl + input).then(function (data) {\n var options = data.results;\n return { options: options };\n }).catch(function () {\n var options = [];\n return { options: options };\n });\n }\n return Promise.resolve();\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n if (this.state.value) {\n return this.props.multiSelect ? this.state.value : [this.state.value];\n }\n return [];\n }\n }, {\n key: 'handleChange',\n value: function handleChange(value) {\n var errors = this._getErrors(value);\n if (!this.props.asynchronous && this.props.minimumInput !== 0) {\n this.setState({ options: [], noResultsText: '' });\n }\n this.setState({ value: value, hasErrors: this._hasErrors(errors) });\n if (this.props.onValueChange) {\n this.props.onValueChange(value, errors);\n }\n }\n }, {\n key: 'storeChildRef',\n value: function storeChildRef(ref) {\n if (ref) this.childRef = ref;\n }\n }, {\n key: 'handleFocus',\n value: function handleFocus() {\n if (this.childRef) {\n this.childRef.loadOptions('');\n }\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n var validations = this.props.validations;\n var controlDetails = { validations: validations, value: value };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n autofocus = _props2.autofocus,\n autoload = _props2.autoload,\n cache = _props2.cache,\n enabled = _props2.enabled,\n filterOptions = _props2.filterOptions,\n labelKey = _props2.labelKey,\n valueKey = _props2.valueKey,\n asynchronous = _props2.asynchronous,\n multiSelect = _props2.multiSelect,\n minimumInput = _props2.minimumInput,\n searchable = _props2.searchable;\n\n var props = {\n autofocus: autofocus,\n backspaceRemoves: true,\n disabled: !enabled,\n filterOptions: filterOptions,\n labelKey: labelKey,\n minimumInput: minimumInput,\n multi: multiSelect,\n onChange: this.handleChange,\n value: this.state.value,\n valueKey: valueKey,\n searchable: searchable,\n matchProp: 'label'\n };\n var className = (0, _classnames2.default)('obs-control-select-wrapper', { 'form-builder-error': this.state.hasErrors });\n if (asynchronous) {\n return _react2.default.createElement(\n 'div',\n { className: className },\n _react2.default.createElement(_reactSelect2.default.Async, _extends({}, props, {\n autoload: autoload,\n cache: cache,\n loadOptions: this.getOptions,\n onFocus: this.handleFocus,\n ref: this.storeChildRef\n }))\n );\n }\n return _react2.default.createElement(\n 'div',\n { className: className },\n _react2.default.createElement(_reactSelect2.default, _extends({}, props, {\n noResultsText: this.state.noResultsText,\n onInputChange: this.onInputChange,\n options: this.state.options,\n ref: this.storeChildRef\n }))\n );\n }\n }]);\n\n return AutoComplete;\n}(_react.Component);\n\nAutoComplete.propTypes = {\n asynchronous: _propTypes2.default.bool,\n autofocus: _propTypes2.default.bool,\n autoload: _propTypes2.default.bool,\n cache: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n filterOptions: _propTypes2.default.func,\n formFieldPath: _propTypes2.default.string,\n labelKey: _propTypes2.default.string,\n minimumInput: _propTypes2.default.number,\n multiSelect: _propTypes2.default.bool,\n onValueChange: _propTypes2.default.func,\n options: _propTypes2.default.array,\n optionsUrl: _propTypes2.default.string,\n searchable: _propTypes2.default.bool,\n validateForm: _propTypes2.default.bool,\n validations: _propTypes2.default.array,\n value: _propTypes2.default.any,\n valueKey: _propTypes2.default.string\n};\n\nAutoComplete.defaultProps = {\n asynchronous: true,\n autofocus: false,\n autoload: false,\n cache: false,\n enabled: true,\n formFieldPath: '-0',\n labelKey: 'display',\n minimumInput: 2,\n multiSelect: false,\n optionsUrl: '/openmrs/ws/rest/v1/concept?v=full&q=',\n valueKey: 'uuid',\n searchable: true\n};\n\nvar descriptor = {\n control: AutoComplete,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('autoComplete', descriptor);\n\n_componentStore2.default.registerComponent('autoComplete', AutoComplete);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/AutoComplete.jsx\n// module id = 236\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/AutoComplete.jsx?");
|
||
|
||
/***/ }),
|
||
/* 237 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.defaultFilterOptions = exports.defaultClearRenderer = exports.defaultArrowRenderer = exports.defaultMenuRenderer = exports.Option = exports.Value = exports.Creatable = exports.AsyncCreatable = exports.Async = undefined;\n\nvar _Select = __webpack_require__(238);\n\nvar _Select2 = _interopRequireDefault(_Select);\n\nvar _Async = __webpack_require__(250);\n\nvar _Async2 = _interopRequireDefault(_Async);\n\nvar _AsyncCreatable = __webpack_require__(251);\n\nvar _AsyncCreatable2 = _interopRequireDefault(_AsyncCreatable);\n\nvar _Creatable = __webpack_require__(252);\n\nvar _Creatable2 = _interopRequireDefault(_Creatable);\n\nvar _Value = __webpack_require__(249);\n\nvar _Value2 = _interopRequireDefault(_Value);\n\nvar _Option = __webpack_require__(247);\n\nvar _Option2 = _interopRequireDefault(_Option);\n\nvar _defaultMenuRenderer = __webpack_require__(246);\n\nvar _defaultMenuRenderer2 = _interopRequireDefault(_defaultMenuRenderer);\n\nvar _defaultArrowRenderer = __webpack_require__(241);\n\nvar _defaultArrowRenderer2 = _interopRequireDefault(_defaultArrowRenderer);\n\nvar _defaultClearRenderer = __webpack_require__(242);\n\nvar _defaultClearRenderer2 = _interopRequireDefault(_defaultClearRenderer);\n\nvar _defaultFilterOptions = __webpack_require__(243);\n\nvar _defaultFilterOptions2 = _interopRequireDefault(_defaultFilterOptions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_Select2.default.Async = _Async2.default;\n_Select2.default.AsyncCreatable = _AsyncCreatable2.default;\n_Select2.default.Creatable = _Creatable2.default;\n_Select2.default.Value = _Value2.default;\n_Select2.default.Option = _Option2.default;\n\nexports.default = _Select2.default;\nexports.Async = _Async2.default;\nexports.AsyncCreatable = _AsyncCreatable2.default;\nexports.Creatable = _Creatable2.default;\nexports.Value = _Value2.default;\nexports.Option = _Option2.default;\nexports.defaultMenuRenderer = _defaultMenuRenderer2.default;\nexports.defaultArrowRenderer = _defaultArrowRenderer2.default;\nexports.defaultClearRenderer = _defaultClearRenderer2.default;\nexports.defaultFilterOptions = _defaultFilterOptions2.default;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/index.js\n// module id = 237\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/index.js?");
|
||
|
||
/***/ }),
|
||
/* 238 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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 && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/react-select\n */\n\n\nvar _reactInputAutosize = __webpack_require__(239);\n\nvar _reactInputAutosize2 = _interopRequireDefault(_reactInputAutosize);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(240);\n\nvar _defaultArrowRenderer = __webpack_require__(241);\n\nvar _defaultArrowRenderer2 = _interopRequireDefault(_defaultArrowRenderer);\n\nvar _defaultClearRenderer = __webpack_require__(242);\n\nvar _defaultClearRenderer2 = _interopRequireDefault(_defaultClearRenderer);\n\nvar _defaultFilterOptions = __webpack_require__(243);\n\nvar _defaultFilterOptions2 = _interopRequireDefault(_defaultFilterOptions);\n\nvar _defaultMenuRenderer = __webpack_require__(246);\n\nvar _defaultMenuRenderer2 = _interopRequireDefault(_defaultMenuRenderer);\n\nvar _Option = __webpack_require__(247);\n\nvar _Option2 = _interopRequireDefault(_Option);\n\nvar _Value = __webpack_require__(249);\n\nvar _Value2 = _interopRequireDefault(_Value);\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\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar stringifyValue = function stringifyValue(value) {\n\treturn typeof value === 'string' ? value : value !== null && JSON.stringify(value) || '';\n};\n\nvar stringOrNode = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]);\nvar stringOrNumber = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]);\n\nvar instanceId = 1;\n\nvar shouldShowValue = function shouldShowValue(state, props) {\n\tvar inputValue = state.inputValue,\n\t isPseudoFocused = state.isPseudoFocused,\n\t isFocused = state.isFocused;\n\tvar onSelectResetsInput = props.onSelectResetsInput;\n\n\n\tif (!inputValue) return true;\n\n\tif (!onSelectResetsInput) {\n\t\treturn !(!isFocused && isPseudoFocused || isFocused && !isPseudoFocused);\n\t}\n\n\treturn false;\n};\n\nvar shouldShowPlaceholder = function shouldShowPlaceholder(state, props, isOpen) {\n\tvar inputValue = state.inputValue,\n\t isPseudoFocused = state.isPseudoFocused,\n\t isFocused = state.isFocused;\n\tvar onSelectResetsInput = props.onSelectResetsInput;\n\n\n\treturn !inputValue || !onSelectResetsInput && !isOpen && !isPseudoFocused && !isFocused;\n};\n\n/**\n * Retrieve a value from the given options and valueKey\n * @param {String|Number|Array} value\t- the selected value(s)\n * @param {Object}\t\t props\t- the Select component's props (or nextProps)\n */\nvar expandValue = function expandValue(value, props) {\n\tvar valueType = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\tif (valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') return value;\n\tvar options = props.options,\n\t valueKey = props.valueKey;\n\n\tif (!options) return;\n\tfor (var i = 0; i < options.length; i++) {\n\t\tif (String(options[i][valueKey]) === String(value)) return options[i];\n\t}\n};\n\nvar handleRequired = function handleRequired(value, multi) {\n\tif (!value) return true;\n\treturn multi ? value.length === 0 : Object.keys(value).length === 0;\n};\n\nvar Select = function (_React$Component) {\n\t_inherits(Select, _React$Component);\n\n\tfunction Select(props) {\n\t\t_classCallCheck(this, Select);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));\n\n\t\t['clearValue', 'focusOption', 'getOptionLabel', 'handleInputBlur', 'handleInputChange', 'handleInputFocus', 'handleInputValueChange', 'handleKeyDown', 'handleMenuScroll', 'handleMouseDown', 'handleMouseDownOnArrow', 'handleMouseDownOnMenu', 'handleTouchEnd', 'handleTouchEndClearValue', 'handleTouchMove', 'handleTouchOutside', 'handleTouchStart', 'handleValueClick', 'onOptionRef', 'removeValue', 'selectValue'].forEach(function (fn) {\n\t\t\treturn _this[fn] = _this[fn].bind(_this);\n\t\t});\n\n\t\t_this.state = {\n\t\t\tinputValue: '',\n\t\t\tisFocused: false,\n\t\t\tisOpen: false,\n\t\t\tisPseudoFocused: false,\n\t\t\trequired: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(Select, [{\n\t\tkey: 'componentWillMount',\n\t\tvalue: function componentWillMount() {\n\t\t\tthis._instancePrefix = 'react-select-' + (this.props.instanceId || ++instanceId) + '-';\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\n\t\t\tif (this.props.required) {\n\t\t\t\tthis.setState({\n\t\t\t\t\trequired: handleRequired(valueArray[0], this.props.multi)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tif (typeof this.props.autofocus !== 'undefined' && typeof console !== 'undefined') {\n\t\t\t\tconsole.warn('Warning: The autofocus prop has changed to autoFocus, support will be removed after react-select@1.0');\n\t\t\t}\n\t\t\tif (this.props.autoFocus || this.props.autofocus) {\n\t\t\t\tthis.focus();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar valueArray = this.getValueArray(nextProps.value, nextProps);\n\n\t\t\tif (nextProps.required) {\n\t\t\t\tthis.setState({\n\t\t\t\t\trequired: handleRequired(valueArray[0], nextProps.multi)\n\t\t\t\t});\n\t\t\t} else if (this.props.required) {\n\t\t\t\t// Used to be required but it's not any more\n\t\t\t\tthis.setState({ required: false });\n\t\t\t}\n\n\t\t\tif (this.state.inputValue && this.props.value !== nextProps.value && nextProps.onSelectResetsInput) {\n\t\t\t\tthis.setState({ inputValue: this.handleInputValueChange('') });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\t// focus to the selected option\n\t\t\tif (this.menu && this.focused && this.state.isOpen && !this.hasScrolledToOption) {\n\t\t\t\tvar focusedOptionNode = (0, _reactDom.findDOMNode)(this.focused);\n\t\t\t\tvar menuNode = (0, _reactDom.findDOMNode)(this.menu);\n\n\t\t\t\tvar scrollTop = menuNode.scrollTop;\n\t\t\t\tvar scrollBottom = scrollTop + menuNode.offsetHeight;\n\t\t\t\tvar optionTop = focusedOptionNode.offsetTop;\n\t\t\t\tvar optionBottom = optionTop + focusedOptionNode.offsetHeight;\n\n\t\t\t\tif (scrollTop > optionTop || scrollBottom < optionBottom) {\n\t\t\t\t\tmenuNode.scrollTop = focusedOptionNode.offsetTop;\n\t\t\t\t}\n\n\t\t\t\t// We still set hasScrolledToOption to true even if we didn't\n\t\t\t\t// actually need to scroll, as we've still confirmed that the\n\t\t\t\t// option is in view.\n\t\t\t\tthis.hasScrolledToOption = true;\n\t\t\t} else if (!this.state.isOpen) {\n\t\t\t\tthis.hasScrolledToOption = false;\n\t\t\t}\n\n\t\t\tif (this._scrollToFocusedOptionOnUpdate && this.focused && this.menu) {\n\t\t\t\tthis._scrollToFocusedOptionOnUpdate = false;\n\t\t\t\tvar focusedDOM = (0, _reactDom.findDOMNode)(this.focused);\n\t\t\t\tvar menuDOM = (0, _reactDom.findDOMNode)(this.menu);\n\t\t\t\tvar focusedRect = focusedDOM.getBoundingClientRect();\n\t\t\t\tvar menuRect = menuDOM.getBoundingClientRect();\n\t\t\t\tif (focusedRect.bottom > menuRect.bottom) {\n\t\t\t\t\tmenuDOM.scrollTop = focusedDOM.offsetTop + focusedDOM.clientHeight - menuDOM.offsetHeight;\n\t\t\t\t} else if (focusedRect.top < menuRect.top) {\n\t\t\t\t\tmenuDOM.scrollTop = focusedDOM.offsetTop;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.props.scrollMenuIntoView && this.menuContainer) {\n\t\t\t\tvar menuContainerRect = this.menuContainer.getBoundingClientRect();\n\t\t\t\tif (window.innerHeight < menuContainerRect.bottom + this.props.menuBuffer) {\n\t\t\t\t\twindow.scrollBy(0, menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prevProps.disabled !== this.props.disabled) {\n\t\t\t\tthis.setState({ isFocused: false }); // eslint-disable-line react/no-did-update-set-state\n\t\t\t\tthis.closeMenu();\n\t\t\t}\n\t\t\tif (prevState.isOpen !== this.state.isOpen) {\n\t\t\t\tthis.toggleTouchOutsideEvent(this.state.isOpen);\n\t\t\t\tvar handler = this.state.isOpen ? this.props.onOpen : this.props.onClose;\n\t\t\t\thandler && handler();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.toggleTouchOutsideEvent(false);\n\t\t}\n\t}, {\n\t\tkey: 'toggleTouchOutsideEvent',\n\t\tvalue: function toggleTouchOutsideEvent(enabled) {\n\t\t\tvar eventTogglerName = enabled ? document.addEventListener ? 'addEventListener' : 'attachEvent' : document.removeEventListener ? 'removeEventListener' : 'detachEvent';\n\t\t\tvar pref = document.addEventListener ? '' : 'on';\n\n\t\t\tdocument[eventTogglerName](pref + 'touchstart', this.handleTouchOutside);\n\t\t\tdocument[eventTogglerName](pref + 'mousedown', this.handleTouchOutside);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchOutside',\n\t\tvalue: function handleTouchOutside(event) {\n\t\t\t// handle touch outside on ios to dismiss menu\n\t\t\tif (this.wrapper && !this.wrapper.contains(event.target)) {\n\t\t\t\tthis.closeMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tif (!this.input) return;\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blurInput',\n\t\tvalue: function blurInput() {\n\t\t\tif (!this.input) return;\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchMove',\n\t\tvalue: function handleTouchMove() {\n\t\t\t// Set a flag that the view is being dragged\n\t\t\tthis.dragging = true;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchStart',\n\t\tvalue: function handleTouchStart() {\n\t\t\t// Set a flag that the view is not being dragged\n\t\t\tthis.dragging = false;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEnd',\n\t\tvalue: function handleTouchEnd(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\t// Fire the mouse events\n\t\t\tthis.handleMouseDown(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEndClearValue',\n\t\tvalue: function handleTouchEndClearValue(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\t// Clear the value\n\t\t\tthis.clearValue(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDown',\n\t\tvalue: function handleMouseDown(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, or if the component is disabled, ignore it.\n\t\t\tif (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.target.tagName === 'INPUT') {\n\t\t\t\tif (!this.state.isFocused) {\n\t\t\t\t\tthis._openAfterFocus = this.props.openOnClick;\n\t\t\t\t\tthis.focus();\n\t\t\t\t} else if (!this.state.isOpen) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\tisPseudoFocused: false,\n\t\t\t\t\t\tfocusedOption: null\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// prevent default event handlers\n\t\t\tevent.preventDefault();\n\n\t\t\t// for the non-searchable select, toggle the menu\n\t\t\tif (!this.props.searchable) {\n\t\t\t\t// This code means that if a select is searchable, onClick the options menu will not appear, only on subsequent click will it open.\n\t\t\t\tthis.focus();\n\t\t\t\treturn this.setState({\n\t\t\t\t\tisOpen: !this.state.isOpen,\n\t\t\t\t\tfocusedOption: null\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.state.isFocused) {\n\t\t\t\t// On iOS, we can get into a state where we think the input is focused but it isn't really,\n\t\t\t\t// since iOS ignores programmatic calls to input.focus() that weren't triggered by a click event.\n\t\t\t\t// Call focus() again here to be safe.\n\t\t\t\tthis.focus();\n\n\t\t\t\tvar input = this.input;\n\t\t\t\tvar toOpen = true;\n\n\t\t\t\tif (typeof input.getInput === 'function') {\n\t\t\t\t\t// Get the actual DOM input if the ref is an <AutosizeInput /> component\n\t\t\t\t\tinput = input.getInput();\n\t\t\t\t}\n\n\t\t\t\t// clears the value so that the cursor will be at the end of input when the component re-renders\n\t\t\t\tinput.value = '';\n\n\t\t\t\tif (this._focusAfterClear) {\n\t\t\t\t\ttoOpen = false;\n\t\t\t\t\tthis._focusAfterClear = false;\n\t\t\t\t}\n\n\t\t\t\t// if the input is focused, ensure the menu is open\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: toOpen,\n\t\t\t\t\tisPseudoFocused: false,\n\t\t\t\t\tfocusedOption: null\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// otherwise, focus the input and open the menu\n\t\t\t\tthis._openAfterFocus = this.props.openOnClick;\n\t\t\t\tthis.focus();\n\t\t\t\tthis.setState({ focusedOption: null });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDownOnArrow',\n\t\tvalue: function handleMouseDownOnArrow(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, or if the component is disabled, ignore it.\n\t\t\tif (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.state.isOpen) {\n\t\t\t\t// prevent default event handlers\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// close the menu\n\t\t\t\tthis.closeMenu();\n\t\t\t} else {\n\t\t\t\t// If the menu isn't open, let the event bubble to the main handleMouseDown\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDownOnMenu',\n\t\tvalue: function handleMouseDownOnMenu(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, or if the component is disabled, ignore it.\n\t\t\tif (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\tthis._openAfterFocus = true;\n\t\t\tthis.focus();\n\t\t}\n\t}, {\n\t\tkey: 'closeMenu',\n\t\tvalue: function closeMenu() {\n\t\t\tif (this.props.onCloseResetsInput) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputValue: this.handleInputValueChange(''),\n\t\t\t\t\tisOpen: false,\n\t\t\t\t\tisPseudoFocused: this.state.isFocused && !this.props.multi\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: false,\n\t\t\t\t\tisPseudoFocused: this.state.isFocused && !this.props.multi\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.hasScrolledToOption = false;\n\t\t}\n\t}, {\n\t\tkey: 'handleInputFocus',\n\t\tvalue: function handleInputFocus(event) {\n\t\t\tif (this.props.disabled) return;\n\n\t\t\tvar toOpen = this.state.isOpen || this._openAfterFocus || this.props.openOnFocus;\n\t\t\ttoOpen = this._focusAfterClear ? false : toOpen; //if focus happens after clear values, don't open dropdown yet.\n\n\t\t\tif (this.props.onFocus) {\n\t\t\t\tthis.props.onFocus(event);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tisFocused: true,\n\t\t\t\tisOpen: !!toOpen\n\t\t\t});\n\n\t\t\tthis._focusAfterClear = false;\n\t\t\tthis._openAfterFocus = false;\n\t\t}\n\t}, {\n\t\tkey: 'handleInputBlur',\n\t\tvalue: function handleInputBlur(event) {\n\t\t\t// The check for menu.contains(activeElement) is necessary to prevent IE11's scrollbar from closing the menu in certain contexts.\n\t\t\tif (this.menu && (this.menu === document.activeElement || this.menu.contains(document.activeElement))) {\n\t\t\t\tthis.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.props.onBlur) {\n\t\t\t\tthis.props.onBlur(event);\n\t\t\t}\n\t\t\tvar onBlurredState = {\n\t\t\t\tisFocused: false,\n\t\t\t\tisOpen: false,\n\t\t\t\tisPseudoFocused: false\n\t\t\t};\n\t\t\tif (this.props.onBlurResetsInput) {\n\t\t\t\tonBlurredState.inputValue = this.handleInputValueChange('');\n\t\t\t}\n\t\t\tthis.setState(onBlurredState);\n\t\t}\n\t}, {\n\t\tkey: 'handleInputChange',\n\t\tvalue: function handleInputChange(event) {\n\t\t\tvar newInputValue = event.target.value;\n\n\t\t\tif (this.state.inputValue !== event.target.value) {\n\t\t\t\tnewInputValue = this.handleInputValueChange(newInputValue);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tinputValue: newInputValue,\n\t\t\t\tisOpen: true,\n\t\t\t\tisPseudoFocused: false\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'setInputValue',\n\t\tvalue: function setInputValue(newValue) {\n\t\t\tif (this.props.onInputChange) {\n\t\t\t\tvar nextState = this.props.onInputChange(newValue);\n\t\t\t\tif (nextState != null && (typeof nextState === 'undefined' ? 'undefined' : _typeof(nextState)) !== 'object') {\n\t\t\t\t\tnewValue = '' + nextState;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.setState({\n\t\t\t\tinputValue: newValue\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'handleInputValueChange',\n\t\tvalue: function handleInputValueChange(newValue) {\n\t\t\tif (this.props.onInputChange) {\n\t\t\t\tvar nextState = this.props.onInputChange(newValue);\n\t\t\t\t// Note: != used deliberately here to catch undefined and null\n\t\t\t\tif (nextState != null && (typeof nextState === 'undefined' ? 'undefined' : _typeof(nextState)) !== 'object') {\n\t\t\t\t\tnewValue = '' + nextState;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn newValue;\n\t\t}\n\t}, {\n\t\tkey: 'handleKeyDown',\n\t\tvalue: function handleKeyDown(event) {\n\t\t\tif (this.props.disabled) return;\n\n\t\t\tif (typeof this.props.onInputKeyDown === 'function') {\n\t\t\t\tthis.props.onInputKeyDown(event);\n\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch (event.keyCode) {\n\t\t\t\tcase 8:\n\t\t\t\t\t// backspace\n\t\t\t\t\tif (!this.state.inputValue && this.props.backspaceRemoves) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.popValue();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9:\n\t\t\t\t\t// tab\n\t\t\t\t\tif (event.shiftKey || !this.state.isOpen || !this.props.tabSelectsValue) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13:\n\t\t\t\t\t// enter\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tif (this.state.isOpen) {\n\t\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.focusNextOption();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 27:\n\t\t\t\t\t// escape\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif (this.state.isOpen) {\n\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t} else if (this.props.clearable && this.props.escapeClearsValue) {\n\t\t\t\t\t\tthis.clearValue(event);\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32:\n\t\t\t\t\t// space\n\t\t\t\t\tif (this.props.searchable) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif (!this.state.isOpen) {\n\t\t\t\t\t\tthis.focusNextOption();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38:\n\t\t\t\t\t// up\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.focusPreviousOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40:\n\t\t\t\t\t// down\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.focusNextOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 33:\n\t\t\t\t\t// page up\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.focusPageUpOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 34:\n\t\t\t\t\t// page down\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.focusPageDownOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 35:\n\t\t\t\t\t// end key\n\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.focusEndOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 36:\n\t\t\t\t\t// home key\n\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.focusStartOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 46:\n\t\t\t\t\t// delete\n\t\t\t\t\tif (!this.state.inputValue && this.props.deleteRemoves) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.popValue();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleValueClick',\n\t\tvalue: function handleValueClick(option, event) {\n\t\t\tif (!this.props.onValueClick) return;\n\t\t\tthis.props.onValueClick(option, event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMenuScroll',\n\t\tvalue: function handleMenuScroll(event) {\n\t\t\tif (!this.props.onMenuScrollToBottom) return;\n\t\t\tvar target = event.target;\n\n\t\t\tif (target.scrollHeight > target.offsetHeight && target.scrollHeight - target.offsetHeight - target.scrollTop <= 0) {\n\t\t\t\tthis.props.onMenuScrollToBottom();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getOptionLabel',\n\t\tvalue: function getOptionLabel(op) {\n\t\t\treturn op[this.props.labelKey];\n\t\t}\n\n\t\t/**\n * Turns a value into an array from the given options\n * @param {String|Number|Array} value\t\t- the value of the select input\n * @param {Object}\t\tnextProps\t- optionally specify the nextProps so the returned array uses the latest configuration\n * @returns\t{Array}\tthe value of the select represented in an array\n */\n\n\t}, {\n\t\tkey: 'getValueArray',\n\t\tvalue: function getValueArray(value) {\n\t\t\tvar nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\t\t/** support optionally passing in the `nextProps` so `componentWillReceiveProps` updates will function as expected */\n\t\t\tvar props = (typeof nextProps === 'undefined' ? 'undefined' : _typeof(nextProps)) === 'object' ? nextProps : this.props;\n\t\t\tif (props.multi) {\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = value.split(props.delimiter);\n\t\t\t\t}\n\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\tif (value === null || value === undefined) return [];\n\t\t\t\t\tvalue = [value];\n\t\t\t\t}\n\t\t\t\treturn value.map(function (value) {\n\t\t\t\t\treturn expandValue(value, props);\n\t\t\t\t}).filter(function (i) {\n\t\t\t\t\treturn i;\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar expandedValue = expandValue(value, props);\n\t\t\treturn expandedValue ? [expandedValue] : [];\n\t\t}\n\t}, {\n\t\tkey: 'setValue',\n\t\tvalue: function setValue(value) {\n\t\t\tvar _this2 = this;\n\n\t\t\tif (this.props.autoBlur) {\n\t\t\t\tthis.blurInput();\n\t\t\t}\n\t\t\tif (this.props.required) {\n\t\t\t\tvar required = handleRequired(value, this.props.multi);\n\t\t\t\tthis.setState({ required: required });\n\t\t\t}\n\t\t\tif (this.props.simpleValue && value) {\n\t\t\t\tvalue = this.props.multi ? value.map(function (i) {\n\t\t\t\t\treturn i[_this2.props.valueKey];\n\t\t\t\t}).join(this.props.delimiter) : value[this.props.valueKey];\n\t\t\t}\n\t\t\tif (this.props.onChange) {\n\t\t\t\tthis.props.onChange(value);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'selectValue',\n\t\tvalue: function selectValue(value) {\n\t\t\tvar _this3 = this;\n\n\t\t\t// NOTE: we actually add/set the value in a callback to make sure the\n\t\t\t// input value is empty to avoid styling issues in Chrome\n\t\t\tif (this.props.closeOnSelect) {\n\t\t\t\tthis.hasScrolledToOption = false;\n\t\t\t}\n\t\t\tvar updatedValue = this.props.onSelectResetsInput ? '' : this.state.inputValue;\n\t\t\tif (this.props.multi) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tfocusedIndex: null,\n\t\t\t\t\tinputValue: this.handleInputValueChange(updatedValue),\n\t\t\t\t\tisOpen: !this.props.closeOnSelect\n\t\t\t\t}, function () {\n\t\t\t\t\tvar valueArray = _this3.getValueArray(_this3.props.value);\n\t\t\t\t\tif (valueArray.some(function (i) {\n\t\t\t\t\t\treturn i[_this3.props.valueKey] === value[_this3.props.valueKey];\n\t\t\t\t\t})) {\n\t\t\t\t\t\t_this3.removeValue(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this3.addValue(value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputValue: this.handleInputValueChange(updatedValue),\n\t\t\t\t\tisOpen: !this.props.closeOnSelect,\n\t\t\t\t\tisPseudoFocused: this.state.isFocused\n\t\t\t\t}, function () {\n\t\t\t\t\t_this3.setValue(value);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'addValue',\n\t\tvalue: function addValue(value) {\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tvar visibleOptions = this._visibleOptions.filter(function (val) {\n\t\t\t\treturn !val.disabled;\n\t\t\t});\n\t\t\tvar lastValueIndex = visibleOptions.indexOf(value);\n\t\t\tthis.setValue(valueArray.concat(value));\n\t\t\tif (!this.props.closeOnSelect) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (visibleOptions.length - 1 === lastValueIndex) {\n\t\t\t\t// the last option was selected; focus the second-last one\n\t\t\t\tthis.focusOption(visibleOptions[lastValueIndex - 1]);\n\t\t\t} else if (visibleOptions.length > lastValueIndex) {\n\t\t\t\t// focus the option below the selected one\n\t\t\t\tthis.focusOption(visibleOptions[lastValueIndex + 1]);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'popValue',\n\t\tvalue: function popValue() {\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tif (!valueArray.length) return;\n\t\t\tif (valueArray[valueArray.length - 1].clearableValue === false) return;\n\t\t\tthis.setValue(this.props.multi ? valueArray.slice(0, valueArray.length - 1) : null);\n\t\t}\n\t}, {\n\t\tkey: 'removeValue',\n\t\tvalue: function removeValue(value) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tthis.setValue(valueArray.filter(function (i) {\n\t\t\t\treturn i[_this4.props.valueKey] !== value[_this4.props.valueKey];\n\t\t\t}));\n\t\t\tthis.focus();\n\t\t}\n\t}, {\n\t\tkey: 'clearValue',\n\t\tvalue: function clearValue(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, ignore it.\n\t\t\tif (event && event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.setValue(this.getResetValue());\n\t\t\tthis.setState({\n\t\t\t\tinputValue: this.handleInputValueChange(''),\n\t\t\t\tisOpen: false\n\t\t\t}, this.focus);\n\n\t\t\tthis._focusAfterClear = true;\n\t\t}\n\t}, {\n\t\tkey: 'getResetValue',\n\t\tvalue: function getResetValue() {\n\t\t\tif (this.props.resetValue !== undefined) {\n\t\t\t\treturn this.props.resetValue;\n\t\t\t} else if (this.props.multi) {\n\t\t\t\treturn [];\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'focusOption',\n\t\tvalue: function focusOption(option) {\n\t\t\tthis.setState({\n\t\t\t\tfocusedOption: option\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'focusNextOption',\n\t\tvalue: function focusNextOption() {\n\t\t\tthis.focusAdjacentOption('next');\n\t\t}\n\t}, {\n\t\tkey: 'focusPreviousOption',\n\t\tvalue: function focusPreviousOption() {\n\t\t\tthis.focusAdjacentOption('previous');\n\t\t}\n\t}, {\n\t\tkey: 'focusPageUpOption',\n\t\tvalue: function focusPageUpOption() {\n\t\t\tthis.focusAdjacentOption('page_up');\n\t\t}\n\t}, {\n\t\tkey: 'focusPageDownOption',\n\t\tvalue: function focusPageDownOption() {\n\t\t\tthis.focusAdjacentOption('page_down');\n\t\t}\n\t}, {\n\t\tkey: 'focusStartOption',\n\t\tvalue: function focusStartOption() {\n\t\t\tthis.focusAdjacentOption('start');\n\t\t}\n\t}, {\n\t\tkey: 'focusEndOption',\n\t\tvalue: function focusEndOption() {\n\t\t\tthis.focusAdjacentOption('end');\n\t\t}\n\t}, {\n\t\tkey: 'focusAdjacentOption',\n\t\tvalue: function focusAdjacentOption(dir) {\n\t\t\tvar options = this._visibleOptions.map(function (option, index) {\n\t\t\t\treturn { option: option, index: index };\n\t\t\t}).filter(function (option) {\n\t\t\t\treturn !option.option.disabled;\n\t\t\t});\n\t\t\tthis._scrollToFocusedOptionOnUpdate = true;\n\t\t\tif (!this.state.isOpen) {\n\t\t\t\tvar newState = {\n\t\t\t\t\tfocusedOption: this._focusedOption || (options.length ? options[dir === 'next' ? 0 : options.length - 1].option : null),\n\t\t\t\t\tisOpen: true\n\t\t\t\t};\n\t\t\t\tif (this.props.onSelectResetsInput) {\n\t\t\t\t\tnewState.inputValue = '';\n\t\t\t\t}\n\t\t\t\tthis.setState(newState);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!options.length) return;\n\t\t\tvar focusedIndex = -1;\n\t\t\tfor (var i = 0; i < options.length; i++) {\n\t\t\t\tif (this._focusedOption === options[i].option) {\n\t\t\t\t\tfocusedIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dir === 'next' && focusedIndex !== -1) {\n\t\t\t\tfocusedIndex = (focusedIndex + 1) % options.length;\n\t\t\t} else if (dir === 'previous') {\n\t\t\t\tif (focusedIndex > 0) {\n\t\t\t\t\tfocusedIndex = focusedIndex - 1;\n\t\t\t\t} else {\n\t\t\t\t\tfocusedIndex = options.length - 1;\n\t\t\t\t}\n\t\t\t} else if (dir === 'start') {\n\t\t\t\tfocusedIndex = 0;\n\t\t\t} else if (dir === 'end') {\n\t\t\t\tfocusedIndex = options.length - 1;\n\t\t\t} else if (dir === 'page_up') {\n\t\t\t\tvar potentialIndex = focusedIndex - this.props.pageSize;\n\t\t\t\tif (potentialIndex < 0) {\n\t\t\t\t\tfocusedIndex = 0;\n\t\t\t\t} else {\n\t\t\t\t\tfocusedIndex = potentialIndex;\n\t\t\t\t}\n\t\t\t} else if (dir === 'page_down') {\n\t\t\t\tvar _potentialIndex = focusedIndex + this.props.pageSize;\n\t\t\t\tif (_potentialIndex > options.length - 1) {\n\t\t\t\t\tfocusedIndex = options.length - 1;\n\t\t\t\t} else {\n\t\t\t\t\tfocusedIndex = _potentialIndex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (focusedIndex === -1) {\n\t\t\t\tfocusedIndex = 0;\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tfocusedIndex: options[focusedIndex].index,\n\t\t\t\tfocusedOption: options[focusedIndex].option\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getFocusedOption',\n\t\tvalue: function getFocusedOption() {\n\t\t\treturn this._focusedOption;\n\t\t}\n\t}, {\n\t\tkey: 'selectFocusedOption',\n\t\tvalue: function selectFocusedOption() {\n\t\t\tif (this._focusedOption) {\n\t\t\t\treturn this.selectValue(this._focusedOption);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderLoading',\n\t\tvalue: function renderLoading() {\n\t\t\tif (!this.props.isLoading) return;\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-loading-zone', 'aria-hidden': 'true' },\n\t\t\t\t_react2.default.createElement('span', { className: 'Select-loading' })\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderValue',\n\t\tvalue: function renderValue(valueArray, isOpen) {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar renderLabel = this.props.valueRenderer || this.getOptionLabel;\n\t\t\tvar ValueComponent = this.props.valueComponent;\n\t\t\tif (!valueArray.length) {\n\t\t\t\tvar showPlaceholder = shouldShowPlaceholder(this.state, this.props, isOpen);\n\t\t\t\treturn showPlaceholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ className: 'Select-placeholder' },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null;\n\t\t\t}\n\t\t\tvar onClick = this.props.onValueClick ? this.handleValueClick : null;\n\t\t\tif (this.props.multi) {\n\t\t\t\treturn valueArray.map(function (value, i) {\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\tValueComponent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdisabled: _this5.props.disabled || value.clearableValue === false,\n\t\t\t\t\t\t\tid: _this5._instancePrefix + '-value-' + i,\n\t\t\t\t\t\t\tinstancePrefix: _this5._instancePrefix,\n\t\t\t\t\t\t\tkey: 'value-' + i + '-' + value[_this5.props.valueKey],\n\t\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\t\tonRemove: _this5.removeValue,\n\t\t\t\t\t\t\tplaceholder: _this5.props.placeholder,\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\tvalues: valueArray\n\t\t\t\t\t\t},\n\t\t\t\t\t\trenderLabel(value, i),\n\t\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t{ className: 'Select-aria-only' },\n\t\t\t\t\t\t\t'\\xA0'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t} else if (shouldShowValue(this.state, this.props)) {\n\t\t\t\tif (isOpen) onClick = null;\n\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\tValueComponent,\n\t\t\t\t\t{\n\t\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\t\tid: this._instancePrefix + '-value-item',\n\t\t\t\t\t\tinstancePrefix: this._instancePrefix,\n\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\tplaceholder: this.props.placeholder,\n\t\t\t\t\t\tvalue: valueArray[0]\n\t\t\t\t\t},\n\t\t\t\t\trenderLabel(valueArray[0])\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderInput',\n\t\tvalue: function renderInput(valueArray, focusedOptionIndex) {\n\t\t\tvar _classNames,\n\t\t\t _this6 = this;\n\n\t\t\tvar className = (0, _classnames2.default)('Select-input', this.props.inputProps.className);\n\t\t\tvar isOpen = this.state.isOpen;\n\n\t\t\tvar ariaOwns = (0, _classnames2.default)((_classNames = {}, _defineProperty(_classNames, this._instancePrefix + '-list', isOpen), _defineProperty(_classNames, this._instancePrefix + '-backspace-remove-message', this.props.multi && !this.props.disabled && this.state.isFocused && !this.state.inputValue), _classNames));\n\n\t\t\tvar value = this.state.inputValue;\n\t\t\tif (value && !this.props.onSelectResetsInput && !this.state.isFocused) {\n\t\t\t\t// it hides input value when it is not focused and was not reset on select\n\t\t\t\tvalue = '';\n\t\t\t}\n\n\t\t\tvar inputProps = _extends({}, this.props.inputProps, {\n\t\t\t\t'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',\n\t\t\t\t'aria-describedby': this.props['aria-describedby'],\n\t\t\t\t'aria-expanded': '' + isOpen,\n\t\t\t\t'aria-haspopup': '' + isOpen,\n\t\t\t\t'aria-label': this.props['aria-label'],\n\t\t\t\t'aria-labelledby': this.props['aria-labelledby'],\n\t\t\t\t'aria-owns': ariaOwns,\n\t\t\t\tonBlur: this.handleInputBlur,\n\t\t\t\tonChange: this.handleInputChange,\n\t\t\t\tonFocus: this.handleInputFocus,\n\t\t\t\tref: function ref(_ref) {\n\t\t\t\t\treturn _this6.input = _ref;\n\t\t\t\t},\n\t\t\t\trole: 'combobox',\n\t\t\t\trequired: this.state.required,\n\t\t\t\ttabIndex: this.props.tabIndex,\n\t\t\t\tvalue: value\n\t\t\t});\n\n\t\t\tif (this.props.inputRenderer) {\n\t\t\t\treturn this.props.inputRenderer(inputProps);\n\t\t\t}\n\n\t\t\tif (this.props.disabled || !this.props.searchable) {\n\t\t\t\tvar divProps = _objectWithoutProperties(this.props.inputProps, []);\n\n\t\t\t\tvar _ariaOwns = (0, _classnames2.default)(_defineProperty({}, this._instancePrefix + '-list', isOpen));\n\t\t\t\treturn _react2.default.createElement('div', _extends({}, divProps, {\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-owns': _ariaOwns,\n\t\t\t\t\t'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',\n\t\t\t\t\t'aria-disabled': '' + this.props.disabled,\n\t\t\t\t\t'aria-label': this.props['aria-label'],\n\t\t\t\t\t'aria-labelledby': this.props['aria-labelledby'],\n\t\t\t\t\tclassName: className,\n\t\t\t\t\tonBlur: this.handleInputBlur,\n\t\t\t\t\tonFocus: this.handleInputFocus,\n\t\t\t\t\tref: function ref(_ref2) {\n\t\t\t\t\t\treturn _this6.input = _ref2;\n\t\t\t\t\t},\n\t\t\t\t\trole: 'combobox',\n\t\t\t\t\tstyle: { border: 0, width: 1, display: 'inline-block' },\n\t\t\t\t\ttabIndex: this.props.tabIndex || 0\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\tif (this.props.autosize) {\n\t\t\t\treturn _react2.default.createElement(_reactInputAutosize2.default, _extends({ id: this.props.id }, inputProps, { className: className, minWidth: '5' }));\n\t\t\t}\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className, key: 'input-wrap', style: { display: 'inline-block' } },\n\t\t\t\t_react2.default.createElement('input', _extends({ id: this.props.id }, inputProps))\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderClear',\n\t\tvalue: function renderClear() {\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tif (!this.props.clearable || !valueArray.length || this.props.disabled || this.props.isLoading) return;\n\t\t\tvar ariaLabel = this.props.multi ? this.props.clearAllText : this.props.clearValueText;\n\t\t\tvar clear = this.props.clearRenderer();\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'span',\n\t\t\t\t{\n\t\t\t\t\t'aria-label': ariaLabel,\n\t\t\t\t\tclassName: 'Select-clear-zone',\n\t\t\t\t\tonMouseDown: this.clearValue,\n\t\t\t\t\tonTouchEnd: this.handleTouchEndClearValue,\n\t\t\t\t\tonTouchMove: this.handleTouchMove,\n\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\ttitle: ariaLabel\n\t\t\t\t},\n\t\t\t\tclear\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderArrow',\n\t\tvalue: function renderArrow() {\n\t\t\tif (!this.props.arrowRenderer) return;\n\n\t\t\tvar onMouseDown = this.handleMouseDownOnArrow;\n\t\t\tvar isOpen = this.state.isOpen;\n\t\t\tvar arrow = this.props.arrowRenderer({ onMouseDown: onMouseDown, isOpen: isOpen });\n\n\t\t\tif (!arrow) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'span',\n\t\t\t\t{\n\t\t\t\t\tclassName: 'Select-arrow-zone',\n\t\t\t\t\tonMouseDown: onMouseDown\n\t\t\t\t},\n\t\t\t\tarrow\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'filterOptions',\n\t\tvalue: function filterOptions(excludeOptions) {\n\t\t\tvar filterValue = this.state.inputValue;\n\t\t\tvar options = this.props.options || [];\n\t\t\tif (this.props.filterOptions) {\n\t\t\t\t// Maintain backwards compatibility with boolean attribute\n\t\t\t\tvar filterOptions = typeof this.props.filterOptions === 'function' ? this.props.filterOptions : _defaultFilterOptions2.default;\n\n\t\t\t\treturn filterOptions(options, filterValue, excludeOptions, {\n\t\t\t\t\tfilterOption: this.props.filterOption,\n\t\t\t\t\tignoreAccents: this.props.ignoreAccents,\n\t\t\t\t\tignoreCase: this.props.ignoreCase,\n\t\t\t\t\tlabelKey: this.props.labelKey,\n\t\t\t\t\tmatchPos: this.props.matchPos,\n\t\t\t\t\tmatchProp: this.props.matchProp,\n\t\t\t\t\ttrimFilter: this.props.trimFilter,\n\t\t\t\t\tvalueKey: this.props.valueKey\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn options;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onOptionRef',\n\t\tvalue: function onOptionRef(ref, isFocused) {\n\t\t\tif (isFocused) {\n\t\t\t\tthis.focused = ref;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderMenu',\n\t\tvalue: function renderMenu(options, valueArray, focusedOption) {\n\t\t\tif (options && options.length) {\n\t\t\t\treturn this.props.menuRenderer({\n\t\t\t\t\tfocusedOption: focusedOption,\n\t\t\t\t\tfocusOption: this.focusOption,\n\t\t\t\t\tinputValue: this.state.inputValue,\n\t\t\t\t\tinstancePrefix: this._instancePrefix,\n\t\t\t\t\tlabelKey: this.props.labelKey,\n\t\t\t\t\tonFocus: this.focusOption,\n\t\t\t\t\tonOptionRef: this.onOptionRef,\n\t\t\t\t\tonSelect: this.selectValue,\n\t\t\t\t\toptionClassName: this.props.optionClassName,\n\t\t\t\t\toptionComponent: this.props.optionComponent,\n\t\t\t\t\toptionRenderer: this.props.optionRenderer || this.getOptionLabel,\n\t\t\t\t\toptions: options,\n\t\t\t\t\tremoveValue: this.removeValue,\n\t\t\t\t\tselectValue: this.selectValue,\n\t\t\t\t\tvalueArray: valueArray,\n\t\t\t\t\tvalueKey: this.props.valueKey\n\t\t\t\t});\n\t\t\t} else if (this.props.noResultsText) {\n\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ className: 'Select-noresults' },\n\t\t\t\t\tthis.props.noResultsText\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderHiddenField',\n\t\tvalue: function renderHiddenField(valueArray) {\n\t\t\tvar _this7 = this;\n\n\t\t\tif (!this.props.name) return;\n\t\t\tif (this.props.joinValues) {\n\t\t\t\tvar value = valueArray.map(function (i) {\n\t\t\t\t\treturn stringifyValue(i[_this7.props.valueKey]);\n\t\t\t\t}).join(this.props.delimiter);\n\t\t\t\treturn _react2.default.createElement('input', {\n\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\tname: this.props.name,\n\t\t\t\t\tref: function ref(_ref3) {\n\t\t\t\t\t\treturn _this7.value = _ref3;\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tvalue: value\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn valueArray.map(function (item, index) {\n\t\t\t\treturn _react2.default.createElement('input', {\n\t\t\t\t\tdisabled: _this7.props.disabled,\n\t\t\t\t\tkey: 'hidden.' + index,\n\t\t\t\t\tname: _this7.props.name,\n\t\t\t\t\tref: 'value' + index,\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tvalue: stringifyValue(item[_this7.props.valueKey])\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getFocusableOptionIndex',\n\t\tvalue: function getFocusableOptionIndex(selectedOption) {\n\t\t\tvar options = this._visibleOptions;\n\t\t\tif (!options.length) return null;\n\n\t\t\tvar valueKey = this.props.valueKey;\n\t\t\tvar focusedOption = this.state.focusedOption || selectedOption;\n\t\t\tif (focusedOption && !focusedOption.disabled) {\n\t\t\t\tvar focusedOptionIndex = -1;\n\t\t\t\toptions.some(function (option, index) {\n\t\t\t\t\tvar isOptionEqual = option[valueKey] === focusedOption[valueKey];\n\t\t\t\t\tif (isOptionEqual) {\n\t\t\t\t\t\tfocusedOptionIndex = index;\n\t\t\t\t\t}\n\t\t\t\t\treturn isOptionEqual;\n\t\t\t\t});\n\t\t\t\tif (focusedOptionIndex !== -1) {\n\t\t\t\t\treturn focusedOptionIndex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < options.length; i++) {\n\t\t\t\tif (!options[i].disabled) return i;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}, {\n\t\tkey: 'renderOuter',\n\t\tvalue: function renderOuter(options, valueArray, focusedOption) {\n\t\t\tvar _this8 = this;\n\n\t\t\tvar menu = this.renderMenu(options, valueArray, focusedOption);\n\t\t\tif (!menu) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ ref: function ref(_ref5) {\n\t\t\t\t\t\treturn _this8.menuContainer = _ref5;\n\t\t\t\t\t}, className: 'Select-menu-outer', style: this.props.menuContainerStyle },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: 'Select-menu',\n\t\t\t\t\t\tid: this._instancePrefix + '-list',\n\t\t\t\t\t\tonMouseDown: this.handleMouseDownOnMenu,\n\t\t\t\t\t\tonScroll: this.handleMenuScroll,\n\t\t\t\t\t\tref: function ref(_ref4) {\n\t\t\t\t\t\t\treturn _this8.menu = _ref4;\n\t\t\t\t\t\t},\n\t\t\t\t\t\trole: 'listbox',\n\t\t\t\t\t\tstyle: this.props.menuStyle,\n\t\t\t\t\t\ttabIndex: -1\n\t\t\t\t\t},\n\t\t\t\t\tmenu\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this9 = this;\n\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tvar options = this._visibleOptions = this.filterOptions(this.props.multi && this.props.removeSelected ? valueArray : null);\n\t\t\tvar isOpen = this.state.isOpen;\n\t\t\tif (this.props.multi && !options.length && valueArray.length && !this.state.inputValue) isOpen = false;\n\t\t\tvar focusedOptionIndex = this.getFocusableOptionIndex(valueArray[0]);\n\n\t\t\tvar focusedOption = null;\n\t\t\tif (focusedOptionIndex !== null) {\n\t\t\t\tfocusedOption = this._focusedOption = options[focusedOptionIndex];\n\t\t\t} else {\n\t\t\t\tfocusedOption = this._focusedOption = null;\n\t\t\t}\n\t\t\tvar className = (0, _classnames2.default)('Select', this.props.className, {\n\t\t\t\t'has-value': valueArray.length,\n\t\t\t\t'is-clearable': this.props.clearable,\n\t\t\t\t'is-disabled': this.props.disabled,\n\t\t\t\t'is-focused': this.state.isFocused,\n\t\t\t\t'is-loading': this.props.isLoading,\n\t\t\t\t'is-open': isOpen,\n\t\t\t\t'is-pseudo-focused': this.state.isPseudoFocused,\n\t\t\t\t'is-searchable': this.props.searchable,\n\t\t\t\t'Select--multi': this.props.multi,\n\t\t\t\t'Select--rtl': this.props.rtl,\n\t\t\t\t'Select--single': !this.props.multi\n\t\t\t});\n\n\t\t\tvar removeMessage = null;\n\t\t\tif (this.props.multi && !this.props.disabled && valueArray.length && !this.state.inputValue && this.state.isFocused && this.props.backspaceRemoves) {\n\t\t\t\tremoveMessage = _react2.default.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\t{ id: this._instancePrefix + '-backspace-remove-message', className: 'Select-aria-only', 'aria-live': 'assertive' },\n\t\t\t\t\tthis.props.backspaceToRemoveMessage.replace('{label}', valueArray[valueArray.length - 1][this.props.labelKey])\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ ref: function ref(_ref7) {\n\t\t\t\t\t\treturn _this9.wrapper = _ref7;\n\t\t\t\t\t},\n\t\t\t\t\tclassName: className,\n\t\t\t\t\tstyle: this.props.wrapperStyle },\n\t\t\t\tthis.renderHiddenField(valueArray),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: function ref(_ref6) {\n\t\t\t\t\t\t\treturn _this9.control = _ref6;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tclassName: 'Select-control',\n\t\t\t\t\t\tonKeyDown: this.handleKeyDown,\n\t\t\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\t\t\tonTouchEnd: this.handleTouchEnd,\n\t\t\t\t\t\tonTouchMove: this.handleTouchMove,\n\t\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\t\tstyle: this.props.style\n\t\t\t\t\t},\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t'div',\n\t\t\t\t\t\t{ className: 'Select-multi-value-wrapper', id: this._instancePrefix + '-value' },\n\t\t\t\t\t\tthis.renderValue(valueArray, isOpen),\n\t\t\t\t\t\tthis.renderInput(valueArray, focusedOptionIndex)\n\t\t\t\t\t),\n\t\t\t\t\tremoveMessage,\n\t\t\t\t\tthis.renderLoading(),\n\t\t\t\t\tthis.renderClear(),\n\t\t\t\t\tthis.renderArrow()\n\t\t\t\t),\n\t\t\t\tisOpen ? this.renderOuter(options, valueArray, focusedOption) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Select;\n}(_react2.default.Component);\n\nSelect.propTypes = {\n\t'aria-describedby': _propTypes2.default.string, // html id(s) of element(s) that should be used to describe this input (for assistive tech)\n\t'aria-label': _propTypes2.default.string, // aria label (for assistive tech)\n\t'aria-labelledby': _propTypes2.default.string, // html id of an element that should be used as the label (for assistive tech)\n\tarrowRenderer: _propTypes2.default.func, // create the drop-down caret element\n\tautoBlur: _propTypes2.default.bool, // automatically blur the component when an option is selected\n\tautoFocus: _propTypes2.default.bool, // autofocus the component on mount\n\tautofocus: _propTypes2.default.bool, // deprecated; use autoFocus instead\n\tautosize: _propTypes2.default.bool, // whether to enable autosizing or not\n\tbackspaceRemoves: _propTypes2.default.bool, // whether backspace removes an item if there is no text input\n\tbackspaceToRemoveMessage: _propTypes2.default.string, // message to use for screenreaders to press backspace to remove the current item - {label} is replaced with the item label\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tclearAllText: stringOrNode, // title for the \"clear\" control when multi: true\n\tclearRenderer: _propTypes2.default.func, // create clearable x element\n\tclearValueText: stringOrNode, // title for the \"clear\" control\n\tclearable: _propTypes2.default.bool, // should it be possible to reset value\n\tcloseOnSelect: _propTypes2.default.bool, // whether to close the menu when a value is selected\n\tdeleteRemoves: _propTypes2.default.bool, // whether delete removes an item if there is no text input\n\tdelimiter: _propTypes2.default.string, // delimiter to use to join multiple values for the hidden field value\n\tdisabled: _propTypes2.default.bool, // whether the Select is disabled or not\n\tescapeClearsValue: _propTypes2.default.bool, // whether escape clears the value when the menu is closed\n\tfilterOption: _propTypes2.default.func, // method to filter a single option (option, filterString)\n\tfilterOptions: _propTypes2.default.any, // boolean to enable default filtering or function to filter the options array ([options], filterString, [values])\n\tid: _propTypes2.default.string, // html id to set on the input element for accessibility or tests\n\tignoreAccents: _propTypes2.default.bool, // whether to strip diacritics when filtering\n\tignoreCase: _propTypes2.default.bool, // whether to perform case-insensitive filtering\n\tinputProps: _propTypes2.default.object, // custom attributes for the Input\n\tinputRenderer: _propTypes2.default.func, // returns a custom input component\n\tinstanceId: _propTypes2.default.string, // set the components instanceId\n\tisLoading: _propTypes2.default.bool, // whether the Select is loading externally or not (such as options being loaded)\n\tjoinValues: _propTypes2.default.bool, // joins multiple values into a single form field with the delimiter (legacy mode)\n\tlabelKey: _propTypes2.default.string, // path of the label value in option objects\n\tmatchPos: _propTypes2.default.string, // (any|start) match the start or entire string when filtering\n\tmatchProp: _propTypes2.default.string, // (any|label|value) which option property to filter on\n\tmenuBuffer: _propTypes2.default.number, // optional buffer (in px) between the bottom of the viewport and the bottom of the menu\n\tmenuContainerStyle: _propTypes2.default.object, // optional style to apply to the menu container\n\tmenuRenderer: _propTypes2.default.func, // renders a custom menu with options\n\tmenuStyle: _propTypes2.default.object, // optional style to apply to the menu\n\tmulti: _propTypes2.default.bool, // multi-value input\n\tname: _propTypes2.default.string, // generates a hidden <input /> tag with this field name for html forms\n\tnoResultsText: stringOrNode, // placeholder displayed when there are no matching search results\n\tonBlur: _propTypes2.default.func, // onBlur handler: function (event) {}\n\tonBlurResetsInput: _propTypes2.default.bool, // whether input is cleared on blur\n\tonChange: _propTypes2.default.func, // onChange handler: function (newValue) {}\n\tonClose: _propTypes2.default.func, // fires when the menu is closed\n\tonCloseResetsInput: _propTypes2.default.bool, // whether input is cleared when menu is closed through the arrow\n\tonFocus: _propTypes2.default.func, // onFocus handler: function (event) {}\n\tonInputChange: _propTypes2.default.func, // onInputChange handler: function (inputValue) {}\n\tonInputKeyDown: _propTypes2.default.func, // input keyDown handler: function (event) {}\n\tonMenuScrollToBottom: _propTypes2.default.func, // fires when the menu is scrolled to the bottom; can be used to paginate options\n\tonOpen: _propTypes2.default.func, // fires when the menu is opened\n\tonSelectResetsInput: _propTypes2.default.bool, // whether input is cleared on select (works only for multiselect)\n\tonValueClick: _propTypes2.default.func, // onClick handler for value labels: function (value, event) {}\n\topenOnClick: _propTypes2.default.bool, // boolean to control opening the menu when the control is clicked\n\topenOnFocus: _propTypes2.default.bool, // always open options menu on focus\n\toptionClassName: _propTypes2.default.string, // additional class(es) to apply to the <Option /> elements\n\toptionComponent: _propTypes2.default.func, // option component to render in dropdown\n\toptionRenderer: _propTypes2.default.func, // optionRenderer: function (option) {}\n\toptions: _propTypes2.default.array, // array of options\n\tpageSize: _propTypes2.default.number, // number of entries to page when using page up/down keys\n\tplaceholder: stringOrNode, // field placeholder, displayed when there's no value\n\tremoveSelected: _propTypes2.default.bool, // whether the selected option is removed from the dropdown on multi selects\n\trequired: _propTypes2.default.bool, // applies HTML5 required attribute when needed\n\tresetValue: _propTypes2.default.any, // value to use when you clear the control\n\trtl: _propTypes2.default.bool, // set to true in order to use react-select in right-to-left direction\n\tscrollMenuIntoView: _propTypes2.default.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged\n\tsearchable: _propTypes2.default.bool, // whether to enable searching feature or not\n\tsimpleValue: _propTypes2.default.bool, // pass the value to onChange as a simple value (legacy pre 1.0 mode), defaults to false\n\tstyle: _propTypes2.default.object, // optional style to apply to the control\n\ttabIndex: stringOrNumber, // optional tab index of the control\n\ttabSelectsValue: _propTypes2.default.bool, // whether to treat tabbing out while focused to be value selection\n\ttrimFilter: _propTypes2.default.bool, // whether to trim whitespace around filter value\n\tvalue: _propTypes2.default.any, // initial field value\n\tvalueComponent: _propTypes2.default.func, // value component to render\n\tvalueKey: _propTypes2.default.string, // path of the label value in option objects\n\tvalueRenderer: _propTypes2.default.func, // valueRenderer: function (option) {}\n\twrapperStyle: _propTypes2.default.object // optional style to apply to the component wrapper\n};\n\nSelect.defaultProps = {\n\tarrowRenderer: _defaultArrowRenderer2.default,\n\tautosize: true,\n\tbackspaceRemoves: true,\n\tbackspaceToRemoveMessage: 'Press backspace to remove {label}',\n\tclearable: true,\n\tclearAllText: 'Clear all',\n\tclearRenderer: _defaultClearRenderer2.default,\n\tclearValueText: 'Clear value',\n\tcloseOnSelect: true,\n\tdeleteRemoves: true,\n\tdelimiter: ',',\n\tdisabled: false,\n\tescapeClearsValue: true,\n\tfilterOptions: _defaultFilterOptions2.default,\n\tignoreAccents: true,\n\tignoreCase: true,\n\tinputProps: {},\n\tisLoading: false,\n\tjoinValues: false,\n\tlabelKey: 'label',\n\tmatchPos: 'any',\n\tmatchProp: 'any',\n\tmenuBuffer: 0,\n\tmenuRenderer: _defaultMenuRenderer2.default,\n\tmulti: false,\n\tnoResultsText: 'No results found',\n\tonBlurResetsInput: true,\n\tonCloseResetsInput: true,\n\tonSelectResetsInput: true,\n\topenOnClick: true,\n\toptionComponent: _Option2.default,\n\tpageSize: 5,\n\tplaceholder: 'Select...',\n\tremoveSelected: true,\n\trequired: false,\n\trtl: false,\n\tscrollMenuIntoView: true,\n\tsearchable: true,\n\tsimpleValue: false,\n\ttabSelectsValue: true,\n\ttrimFilter: true,\n\tvalueComponent: _Value2.default,\n\tvalueKey: 'value'\n};\n\nexports.default = Select;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/Select.js\n// module id = 238\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/Select.js?");
|
||
|
||
/***/ }),
|
||
/* 239 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-input-autosize/lib/AutosizeInput.js\n// module id = 239\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-input-autosize/lib/AutosizeInput.js?");
|
||
|
||
/***/ }),
|
||
/* 240 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("module.exports = __WEBPACK_EXTERNAL_MODULE_240__;\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n// module id = 240\n// module chunks = 0 1\n//# sourceURL=webpack:///external_%7B%22root%22:%22ReactDOM%22,%22commonjs2%22:%22react-dom%22,%22commonjs%22:%22react-dom%22,%22amd%22:%22react-dom%22%7D?");
|
||
|
||
/***/ }),
|
||
/* 241 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar arrowRenderer = function arrowRenderer(_ref) {\n\tvar onMouseDown = _ref.onMouseDown;\n\n\treturn _react2.default.createElement('span', {\n\t\tclassName: 'Select-arrow',\n\t\tonMouseDown: onMouseDown\n\t});\n};\n\narrowRenderer.propTypes = {\n\tonMouseDown: _propTypes2.default.func\n};\n\nexports.default = arrowRenderer;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/defaultArrowRenderer.js\n// module id = 241\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/defaultArrowRenderer.js?");
|
||
|
||
/***/ }),
|
||
/* 242 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clearRenderer = function clearRenderer() {\n\treturn _react2.default.createElement('span', {\n\t\tclassName: 'Select-clear',\n\t\tdangerouslySetInnerHTML: { __html: '×' }\n\t});\n};\n\nexports.default = clearRenderer;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/defaultClearRenderer.js\n// module id = 242\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/defaultClearRenderer.js?");
|
||
|
||
/***/ }),
|
||
/* 243 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _stripDiacritics = __webpack_require__(244);\n\nvar _stripDiacritics2 = _interopRequireDefault(_stripDiacritics);\n\nvar _trim = __webpack_require__(245);\n\nvar _trim2 = _interopRequireDefault(_trim);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isValid = function isValid(value) {\n\treturn typeof value !== 'undefined' && value !== null && value !== '';\n};\n\nvar filterOptions = function filterOptions(options, filterValue, excludeOptions, props) {\n\tif (props.ignoreAccents) {\n\t\tfilterValue = (0, _stripDiacritics2.default)(filterValue);\n\t}\n\n\tif (props.ignoreCase) {\n\t\tfilterValue = filterValue.toLowerCase();\n\t}\n\n\tif (props.trimFilter) {\n\t\tfilterValue = (0, _trim2.default)(filterValue);\n\t}\n\n\tif (excludeOptions) excludeOptions = excludeOptions.map(function (i) {\n\t\treturn i[props.valueKey];\n\t});\n\n\treturn options.filter(function (option) {\n\t\tif (excludeOptions && excludeOptions.indexOf(option[props.valueKey]) > -1) return false;\n\t\tif (props.filterOption) return props.filterOption.call(undefined, option, filterValue);\n\t\tif (!filterValue) return true;\n\n\t\tvar value = option[props.valueKey];\n\t\tvar label = option[props.labelKey];\n\t\tvar hasValue = isValid(value);\n\t\tvar hasLabel = isValid(label);\n\n\t\tif (!hasValue && !hasLabel) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar valueTest = hasValue ? String(value) : null;\n\t\tvar labelTest = hasLabel ? String(label) : null;\n\n\t\tif (props.ignoreAccents) {\n\t\t\tif (valueTest && props.matchProp !== 'label') valueTest = (0, _stripDiacritics2.default)(valueTest);\n\t\t\tif (labelTest && props.matchProp !== 'value') labelTest = (0, _stripDiacritics2.default)(labelTest);\n\t\t}\n\n\t\tif (props.ignoreCase) {\n\t\t\tif (valueTest && props.matchProp !== 'label') valueTest = valueTest.toLowerCase();\n\t\t\tif (labelTest && props.matchProp !== 'value') labelTest = labelTest.toLowerCase();\n\t\t}\n\n\t\treturn props.matchPos === 'start' ? valueTest && props.matchProp !== 'label' && valueTest.substr(0, filterValue.length) === filterValue || labelTest && props.matchProp !== 'value' && labelTest.substr(0, filterValue.length) === filterValue : valueTest && props.matchProp !== 'label' && valueTest.indexOf(filterValue) >= 0 || labelTest && props.matchProp !== 'value' && labelTest.indexOf(filterValue) >= 0;\n\t});\n};\n\nexports.default = filterOptions;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/defaultFilterOptions.js\n// module id = 243\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/defaultFilterOptions.js?");
|
||
|
||
/***/ }),
|
||
/* 244 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar map = [{ 'base': 'A', 'letters': /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g }, { 'base': 'AA', 'letters': /[\\uA732]/g }, { 'base': 'AE', 'letters': /[\\u00C6\\u01FC\\u01E2]/g }, { 'base': 'AO', 'letters': /[\\uA734]/g }, { 'base': 'AU', 'letters': /[\\uA736]/g }, { 'base': 'AV', 'letters': /[\\uA738\\uA73A]/g }, { 'base': 'AY', 'letters': /[\\uA73C]/g }, { 'base': 'B', 'letters': /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g }, { 'base': 'C', 'letters': /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g }, { 'base': 'D', 'letters': /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g }, { 'base': 'DZ', 'letters': /[\\u01F1\\u01C4]/g }, { 'base': 'Dz', 'letters': /[\\u01F2\\u01C5]/g }, { 'base': 'E', 'letters': /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g }, { 'base': 'F', 'letters': /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g }, { 'base': 'G', 'letters': /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g }, { 'base': 'H', 'letters': /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g }, { 'base': 'I', 'letters': /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g }, { 'base': 'J', 'letters': /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g }, { 'base': 'K', 'letters': /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g }, { 'base': 'L', 'letters': /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g }, { 'base': 'LJ', 'letters': /[\\u01C7]/g }, { 'base': 'Lj', 'letters': /[\\u01C8]/g }, { 'base': 'M', 'letters': /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g }, { 'base': 'N', 'letters': /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g }, { 'base': 'NJ', 'letters': /[\\u01CA]/g }, { 'base': 'Nj', 'letters': /[\\u01CB]/g }, { 'base': 'O', 'letters': /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g }, { 'base': 'OI', 'letters': /[\\u01A2]/g }, { 'base': 'OO', 'letters': /[\\uA74E]/g }, { 'base': 'OU', 'letters': /[\\u0222]/g }, { 'base': 'P', 'letters': /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g }, { 'base': 'Q', 'letters': /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g }, { 'base': 'R', 'letters': /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g }, { 'base': 'S', 'letters': /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g }, { 'base': 'T', 'letters': /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g }, { 'base': 'TZ', 'letters': /[\\uA728]/g }, { 'base': 'U', 'letters': /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g }, { 'base': 'V', 'letters': /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g }, { 'base': 'VY', 'letters': /[\\uA760]/g }, { 'base': 'W', 'letters': /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g }, { 'base': 'X', 'letters': /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g }, { 'base': 'Y', 'letters': /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g }, { 'base': 'Z', 'letters': /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g }, { 'base': 'a', 'letters': /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g }, { 'base': 'aa', 'letters': /[\\uA733]/g }, { 'base': 'ae', 'letters': /[\\u00E6\\u01FD\\u01E3]/g }, { 'base': 'ao', 'letters': /[\\uA735]/g }, { 'base': 'au', 'letters': /[\\uA737]/g }, { 'base': 'av', 'letters': /[\\uA739\\uA73B]/g }, { 'base': 'ay', 'letters': /[\\uA73D]/g }, { 'base': 'b', 'letters': /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g }, { 'base': 'c', 'letters': /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g }, { 'base': 'd', 'letters': /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g }, { 'base': 'dz', 'letters': /[\\u01F3\\u01C6]/g }, { 'base': 'e', 'letters': /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g }, { 'base': 'f', 'letters': /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g }, { 'base': 'g', 'letters': /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g }, { 'base': 'h', 'letters': /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g }, { 'base': 'hv', 'letters': /[\\u0195]/g }, { 'base': 'i', 'letters': /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g }, { 'base': 'j', 'letters': /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g }, { 'base': 'k', 'letters': /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g }, { 'base': 'l', 'letters': /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g }, { 'base': 'lj', 'letters': /[\\u01C9]/g }, { 'base': 'm', 'letters': /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g }, { 'base': 'n', 'letters': /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g }, { 'base': 'nj', 'letters': /[\\u01CC]/g }, { 'base': 'o', 'letters': /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g }, { 'base': 'oi', 'letters': /[\\u01A3]/g }, { 'base': 'ou', 'letters': /[\\u0223]/g }, { 'base': 'oo', 'letters': /[\\uA74F]/g }, { 'base': 'p', 'letters': /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g }, { 'base': 'q', 'letters': /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g }, { 'base': 'r', 'letters': /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g }, { 'base': 's', 'letters': /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g }, { 'base': 't', 'letters': /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g }, { 'base': 'tz', 'letters': /[\\uA729]/g }, { 'base': 'u', 'letters': /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g }, { 'base': 'v', 'letters': /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g }, { 'base': 'vy', 'letters': /[\\uA761]/g }, { 'base': 'w', 'letters': /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g }, { 'base': 'x', 'letters': /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g }, { 'base': 'y', 'letters': /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g }, { 'base': 'z', 'letters': /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g }];\n\nvar stripDiacritics = function stripDiacritics(str) {\n\tfor (var i = 0; i < map.length; i++) {\n\t\tstr = str.replace(map[i].letters, map[i].base);\n\t}\n\treturn str;\n};\n\nexports.default = stripDiacritics;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/stripDiacritics.js\n// module id = 244\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/stripDiacritics.js?");
|
||
|
||
/***/ }),
|
||
/* 245 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar trim = function trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nexports.default = trim;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/trim.js\n// module id = 245\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/trim.js?");
|
||
|
||
/***/ }),
|
||
/* 246 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar menuRenderer = function menuRenderer(_ref) {\n\tvar focusedOption = _ref.focusedOption,\n\t focusOption = _ref.focusOption,\n\t inputValue = _ref.inputValue,\n\t instancePrefix = _ref.instancePrefix,\n\t onFocus = _ref.onFocus,\n\t onOptionRef = _ref.onOptionRef,\n\t onSelect = _ref.onSelect,\n\t optionClassName = _ref.optionClassName,\n\t optionComponent = _ref.optionComponent,\n\t optionRenderer = _ref.optionRenderer,\n\t options = _ref.options,\n\t removeValue = _ref.removeValue,\n\t selectValue = _ref.selectValue,\n\t valueArray = _ref.valueArray,\n\t valueKey = _ref.valueKey;\n\n\tvar Option = optionComponent;\n\n\treturn options.map(function (option, i) {\n\t\tvar isSelected = valueArray && valueArray.some(function (x) {\n\t\t\treturn x[valueKey] === option[valueKey];\n\t\t});\n\t\tvar isFocused = option === focusedOption;\n\t\tvar optionClass = (0, _classnames2.default)(optionClassName, {\n\t\t\t'Select-option': true,\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-focused': isFocused,\n\t\t\t'is-disabled': option.disabled\n\t\t});\n\n\t\treturn _react2.default.createElement(\n\t\t\tOption,\n\t\t\t{\n\t\t\t\tclassName: optionClass,\n\t\t\t\tfocusOption: focusOption,\n\t\t\t\tinputValue: inputValue,\n\t\t\t\tinstancePrefix: instancePrefix,\n\t\t\t\tisDisabled: option.disabled,\n\t\t\t\tisFocused: isFocused,\n\t\t\t\tisSelected: isSelected,\n\t\t\t\tkey: 'option-' + i + '-' + option[valueKey],\n\t\t\t\tonFocus: onFocus,\n\t\t\t\tonSelect: onSelect,\n\t\t\t\toption: option,\n\t\t\t\toptionIndex: i,\n\t\t\t\tref: function ref(_ref2) {\n\t\t\t\t\tonOptionRef(_ref2, isFocused);\n\t\t\t\t},\n\t\t\t\tremoveValue: removeValue,\n\t\t\t\tselectValue: selectValue\n\t\t\t},\n\t\t\toptionRenderer(option, i, inputValue)\n\t\t);\n\t});\n};\n\nmenuRenderer.propTypes = {\n\tfocusOption: _propTypes2.default.func,\n\tfocusedOption: _propTypes2.default.object,\n\tinputValue: _propTypes2.default.string,\n\tinstancePrefix: _propTypes2.default.string,\n\tonFocus: _propTypes2.default.func,\n\tonOptionRef: _propTypes2.default.func,\n\tonSelect: _propTypes2.default.func,\n\toptionClassName: _propTypes2.default.string,\n\toptionComponent: _propTypes2.default.func,\n\toptionRenderer: _propTypes2.default.func,\n\toptions: _propTypes2.default.array,\n\tremoveValue: _propTypes2.default.func,\n\tselectValue: _propTypes2.default.func,\n\tvalueArray: _propTypes2.default.array,\n\tvalueKey: _propTypes2.default.string\n};\n\nexports.default = menuRenderer;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/defaultMenuRenderer.js\n// module id = 246\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/defaultMenuRenderer.js?");
|
||
|
||
/***/ }),
|
||
/* 247 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _blockEvent = __webpack_require__(248);\n\nvar _blockEvent2 = _interopRequireDefault(_blockEvent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Option = function (_React$Component) {\n\t_inherits(Option, _React$Component);\n\n\tfunction Option(props) {\n\t\t_classCallCheck(this, Option);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Option.__proto__ || Object.getPrototypeOf(Option)).call(this, props));\n\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.handleMouseEnter = _this.handleMouseEnter.bind(_this);\n\t\t_this.handleMouseMove = _this.handleMouseMove.bind(_this);\n\t\t_this.handleTouchStart = _this.handleTouchStart.bind(_this);\n\t\t_this.handleTouchEnd = _this.handleTouchEnd.bind(_this);\n\t\t_this.handleTouchMove = _this.handleTouchMove.bind(_this);\n\t\t_this.onFocus = _this.onFocus.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Option, [{\n\t\tkey: 'handleMouseDown',\n\t\tvalue: function handleMouseDown(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tthis.props.onSelect(this.props.option, event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseEnter',\n\t\tvalue: function handleMouseEnter(event) {\n\t\t\tthis.onFocus(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseMove',\n\t\tvalue: function handleMouseMove(event) {\n\t\t\tthis.onFocus(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEnd',\n\t\tvalue: function handleTouchEnd(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\tthis.handleMouseDown(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchMove',\n\t\tvalue: function handleTouchMove() {\n\t\t\t// Set a flag that the view is being dragged\n\t\t\tthis.dragging = true;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchStart',\n\t\tvalue: function handleTouchStart() {\n\t\t\t// Set a flag that the view is not being dragged\n\t\t\tthis.dragging = false;\n\t\t}\n\t}, {\n\t\tkey: 'onFocus',\n\t\tvalue: function onFocus(event) {\n\t\t\tif (!this.props.isFocused) {\n\t\t\t\tthis.props.onFocus(this.props.option, event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t option = _props.option,\n\t\t\t instancePrefix = _props.instancePrefix,\n\t\t\t optionIndex = _props.optionIndex;\n\n\t\t\tvar className = (0, _classnames2.default)(this.props.className, option.className);\n\n\t\t\treturn option.disabled ? _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className,\n\t\t\t\t\tonMouseDown: _blockEvent2.default,\n\t\t\t\t\tonClick: _blockEvent2.default },\n\t\t\t\tthis.props.children\n\t\t\t) : _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className,\n\t\t\t\t\tstyle: option.style,\n\t\t\t\t\trole: 'option',\n\t\t\t\t\t'aria-label': option.label,\n\t\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\t\tonMouseEnter: this.handleMouseEnter,\n\t\t\t\t\tonMouseMove: this.handleMouseMove,\n\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\tonTouchMove: this.handleTouchMove,\n\t\t\t\t\tonTouchEnd: this.handleTouchEnd,\n\t\t\t\t\tid: instancePrefix + '-option-' + optionIndex,\n\t\t\t\t\ttitle: option.title },\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Option;\n}(_react2.default.Component);\n\nOption.propTypes = {\n\tchildren: _propTypes2.default.node,\n\tclassName: _propTypes2.default.string, // className (based on mouse position)\n\tinstancePrefix: _propTypes2.default.string.isRequired, // unique prefix for the ids (used for aria)\n\tisDisabled: _propTypes2.default.bool, // the option is disabled\n\tisFocused: _propTypes2.default.bool, // the option is focused\n\tisSelected: _propTypes2.default.bool, // the option is selected\n\tonFocus: _propTypes2.default.func, // method to handle mouseEnter on option element\n\tonSelect: _propTypes2.default.func, // method to handle click on option element\n\tonUnfocus: _propTypes2.default.func, // method to handle mouseLeave on option element\n\toption: _propTypes2.default.object.isRequired, // object that is base for that option\n\toptionIndex: _propTypes2.default.number // index of the option, used to generate unique ids for aria\n};\n\nexports.default = Option;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/Option.js\n// module id = 247\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/Option.js?");
|
||
|
||
/***/ }),
|
||
/* 248 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function (event) {\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\tif (event.target.tagName !== 'A' || !('href' in event.target)) {\n\t\treturn;\n\t}\n\tif (event.target.target) {\n\t\twindow.open(event.target.href, event.target.target);\n\t} else {\n\t\twindow.location.href = event.target.href;\n\t}\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/utils/blockEvent.js\n// module id = 248\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/utils/blockEvent.js?");
|
||
|
||
/***/ }),
|
||
/* 249 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Value = function (_React$Component) {\n\t_inherits(Value, _React$Component);\n\n\tfunction Value(props) {\n\t\t_classCallCheck(this, Value);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Value.__proto__ || Object.getPrototypeOf(Value)).call(this, props));\n\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.onRemove = _this.onRemove.bind(_this);\n\t\t_this.handleTouchEndRemove = _this.handleTouchEndRemove.bind(_this);\n\t\t_this.handleTouchMove = _this.handleTouchMove.bind(_this);\n\t\t_this.handleTouchStart = _this.handleTouchStart.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Value, [{\n\t\tkey: 'handleMouseDown',\n\t\tvalue: function handleMouseDown(event) {\n\t\t\tif (event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.props.onClick) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.props.onClick(this.props.value, event);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.props.value.href) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onRemove',\n\t\tvalue: function onRemove(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tthis.props.onRemove(this.props.value);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEndRemove',\n\t\tvalue: function handleTouchEndRemove(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\t// Fire the mouse events\n\t\t\tthis.onRemove(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchMove',\n\t\tvalue: function handleTouchMove() {\n\t\t\t// Set a flag that the view is being dragged\n\t\t\tthis.dragging = true;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchStart',\n\t\tvalue: function handleTouchStart() {\n\t\t\t// Set a flag that the view is not being dragged\n\t\t\tthis.dragging = false;\n\t\t}\n\t}, {\n\t\tkey: 'renderRemoveIcon',\n\t\tvalue: function renderRemoveIcon() {\n\t\t\tif (this.props.disabled || !this.props.onRemove) return;\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-value-icon',\n\t\t\t\t\t'aria-hidden': 'true',\n\t\t\t\t\tonMouseDown: this.onRemove,\n\t\t\t\t\tonTouchEnd: this.handleTouchEndRemove,\n\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\tonTouchMove: this.handleTouchMove },\n\t\t\t\t'\\xD7'\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderLabel',\n\t\tvalue: function renderLabel() {\n\t\t\tvar className = 'Select-value-label';\n\t\t\treturn this.props.onClick || this.props.value.href ? _react2.default.createElement(\n\t\t\t\t'a',\n\t\t\t\t{ className: className, href: this.props.value.href, target: this.props.value.target, onMouseDown: this.handleMouseDown, onTouchEnd: this.handleMouseDown },\n\t\t\t\tthis.props.children\n\t\t\t) : _react2.default.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: className, role: 'option', 'aria-selected': 'true', id: this.props.id },\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: (0, _classnames2.default)('Select-value', this.props.value.disabled ? 'Select-value-disabled' : '', this.props.value.className),\n\t\t\t\t\tstyle: this.props.value.style,\n\t\t\t\t\ttitle: this.props.value.title\n\t\t\t\t},\n\t\t\t\tthis.renderRemoveIcon(),\n\t\t\t\tthis.renderLabel()\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Value;\n}(_react2.default.Component);\n\nValue.propTypes = {\n\tchildren: _propTypes2.default.node,\n\tdisabled: _propTypes2.default.bool, // disabled prop passed to ReactSelect\n\tid: _propTypes2.default.string, // Unique id for the value - used for aria\n\tonClick: _propTypes2.default.func, // method to handle click on value label\n\tonRemove: _propTypes2.default.func, // method to handle removal of the value\n\tvalue: _propTypes2.default.object.isRequired // the option object for this value\n};\n\nexports.default = Value;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/Value.js\n// module id = 249\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/Value.js?");
|
||
|
||
/***/ }),
|
||
/* 250 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Select = __webpack_require__(238);\n\nvar _Select2 = _interopRequireDefault(_Select);\n\nvar _stripDiacritics = __webpack_require__(244);\n\nvar _stripDiacritics2 = _interopRequireDefault(_stripDiacritics);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n\tautoload: _propTypes2.default.bool.isRequired, // automatically call the `loadOptions` prop on-mount; defaults to true\n\tcache: _propTypes2.default.any, // object to use to cache results; set to null/false to disable caching\n\tchildren: _propTypes2.default.func.isRequired, // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n\tignoreAccents: _propTypes2.default.bool, // strip diacritics when filtering; defaults to true\n\tignoreCase: _propTypes2.default.bool, // perform case-insensitive filtering; defaults to true\n\tloadOptions: _propTypes2.default.func.isRequired, // callback to load options asynchronously; (inputValue: string, callback: Function): ?Promise\n\tloadingPlaceholder: _propTypes2.default.oneOfType([// replaces the placeholder while options are loading\n\t_propTypes2.default.string, _propTypes2.default.node]),\n\tmulti: _propTypes2.default.bool, // multi-value input\n\tnoResultsText: _propTypes2.default.oneOfType([// field noResultsText, displayed when no options come back from the server\n\t_propTypes2.default.string, _propTypes2.default.node]),\n\tonChange: _propTypes2.default.func, // onChange handler: function (newValue) {}\n\tonInputChange: _propTypes2.default.func, // optional for keeping track of what is being typed\n\toptions: _propTypes2.default.array.isRequired, // array of options\n\tplaceholder: _propTypes2.default.oneOfType([// field placeholder, displayed when there's no value (shared with Select)\n\t_propTypes2.default.string, _propTypes2.default.node]),\n\tsearchPromptText: _propTypes2.default.oneOfType([// label to prompt for search input\n\t_propTypes2.default.string, _propTypes2.default.node]),\n\tvalue: _propTypes2.default.any // initial field value\n};\n\nvar defaultCache = {};\n\nvar defaultChildren = function defaultChildren(props) {\n\treturn _react2.default.createElement(_Select2.default, props);\n};\n\nvar defaultProps = {\n\tautoload: true,\n\tcache: defaultCache,\n\tchildren: defaultChildren,\n\tignoreAccents: true,\n\tignoreCase: true,\n\tloadingPlaceholder: 'Loading...',\n\toptions: [],\n\tsearchPromptText: 'Type to search'\n};\n\nvar Async = function (_Component) {\n\t_inherits(Async, _Component);\n\n\tfunction Async(props, context) {\n\t\t_classCallCheck(this, Async);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Async.__proto__ || Object.getPrototypeOf(Async)).call(this, props, context));\n\n\t\t_this._cache = props.cache === defaultCache ? {} : props.cache;\n\n\t\t_this.state = {\n\t\t\tinputValue: '',\n\t\t\tisLoading: false,\n\t\t\toptions: props.options\n\t\t};\n\n\t\t_this.onInputChange = _this.onInputChange.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Async, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tvar autoload = this.props.autoload;\n\n\n\t\t\tif (autoload) {\n\t\t\t\tthis.loadOptions('');\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tif (nextProps.options !== this.props.options) {\n\t\t\t\tthis.setState({\n\t\t\t\t\toptions: nextProps.options\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis._callback = null;\n\t\t}\n\t}, {\n\t\tkey: 'loadOptions',\n\t\tvalue: function loadOptions(inputValue) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar loadOptions = this.props.loadOptions;\n\n\t\t\tvar cache = this._cache;\n\n\t\t\tif (cache && Object.prototype.hasOwnProperty.call(cache, inputValue)) {\n\t\t\t\tthis._callback = null;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\toptions: cache[inputValue]\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar callback = function callback(error, data) {\n\t\t\t\tvar options = data && data.options || [];\n\n\t\t\t\tif (cache) {\n\t\t\t\t\tcache[inputValue] = options;\n\t\t\t\t}\n\n\t\t\t\tif (callback === _this2._callback) {\n\t\t\t\t\t_this2._callback = null;\n\n\t\t\t\t\t_this2.setState({\n\t\t\t\t\t\tisLoading: false,\n\t\t\t\t\t\toptions: options\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Ignore all but the most recent request\n\t\t\tthis._callback = callback;\n\n\t\t\tvar promise = loadOptions(inputValue, callback);\n\t\t\tif (promise) {\n\t\t\t\tpromise.then(function (data) {\n\t\t\t\t\treturn callback(null, data);\n\t\t\t\t}, function (error) {\n\t\t\t\t\treturn callback(error);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this._callback && !this.state.isLoading) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onInputChange',\n\t\tvalue: function onInputChange(inputValue) {\n\t\t\tvar _props = this.props,\n\t\t\t ignoreAccents = _props.ignoreAccents,\n\t\t\t ignoreCase = _props.ignoreCase,\n\t\t\t onInputChange = _props.onInputChange;\n\n\t\t\tvar newInputValue = inputValue;\n\n\t\t\tif (onInputChange) {\n\t\t\t\tvar value = onInputChange(newInputValue);\n\t\t\t\t// Note: != used deliberately here to catch undefined and null\n\t\t\t\tif (value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {\n\t\t\t\t\tnewInputValue = '' + value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar transformedInputValue = newInputValue;\n\n\t\t\tif (ignoreAccents) {\n\t\t\t\ttransformedInputValue = (0, _stripDiacritics2.default)(transformedInputValue);\n\t\t\t}\n\n\t\t\tif (ignoreCase) {\n\t\t\t\ttransformedInputValue = transformedInputValue.toLowerCase();\n\t\t\t}\n\n\t\t\tthis.setState({ inputValue: newInputValue });\n\t\t\tthis.loadOptions(transformedInputValue);\n\n\t\t\t// Return new input value, but without applying toLowerCase() to avoid modifying the user's view case of the input while typing.\n\t\t\treturn newInputValue;\n\t\t}\n\t}, {\n\t\tkey: 'noResultsText',\n\t\tvalue: function noResultsText() {\n\t\t\tvar _props2 = this.props,\n\t\t\t loadingPlaceholder = _props2.loadingPlaceholder,\n\t\t\t noResultsText = _props2.noResultsText,\n\t\t\t searchPromptText = _props2.searchPromptText;\n\t\t\tvar _state = this.state,\n\t\t\t inputValue = _state.inputValue,\n\t\t\t isLoading = _state.isLoading;\n\n\n\t\t\tif (isLoading) {\n\t\t\t\treturn loadingPlaceholder;\n\t\t\t}\n\t\t\tif (inputValue && noResultsText) {\n\t\t\t\treturn noResultsText;\n\t\t\t}\n\t\t\treturn searchPromptText;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.select.focus();\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar _props3 = this.props,\n\t\t\t children = _props3.children,\n\t\t\t loadingPlaceholder = _props3.loadingPlaceholder,\n\t\t\t placeholder = _props3.placeholder;\n\t\t\tvar _state2 = this.state,\n\t\t\t isLoading = _state2.isLoading,\n\t\t\t options = _state2.options;\n\n\n\t\t\tvar props = {\n\t\t\t\tnoResultsText: this.noResultsText(),\n\t\t\t\tplaceholder: isLoading ? loadingPlaceholder : placeholder,\n\t\t\t\toptions: isLoading && loadingPlaceholder ? [] : options,\n\t\t\t\tref: function ref(_ref) {\n\t\t\t\t\treturn _this3.select = _ref;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn children(_extends({}, this.props, props, {\n\t\t\t\tisLoading: isLoading,\n\t\t\t\tonInputChange: this.onInputChange\n\t\t\t}));\n\t\t}\n\t}]);\n\n\treturn Async;\n}(_react.Component);\n\nexports.default = Async;\n\n\nAsync.propTypes = propTypes;\nAsync.defaultProps = defaultProps;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/Async.js\n// module id = 250\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/Async.js?");
|
||
|
||
/***/ }),
|
||
/* 251 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Async = __webpack_require__(250);\n\nvar _Async2 = _interopRequireDefault(_Async);\n\nvar _Creatable = __webpack_require__(252);\n\nvar _Creatable2 = _interopRequireDefault(_Creatable);\n\nvar _Select = __webpack_require__(238);\n\nvar _Select2 = _interopRequireDefault(_Select);\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AsyncCreatableSelect = function (_React$Component) {\n\t_inherits(AsyncCreatableSelect, _React$Component);\n\n\tfunction AsyncCreatableSelect() {\n\t\t_classCallCheck(this, AsyncCreatableSelect);\n\n\t\treturn _possibleConstructorReturn(this, (AsyncCreatableSelect.__proto__ || Object.getPrototypeOf(AsyncCreatableSelect)).apply(this, arguments));\n\t}\n\n\t_createClass(AsyncCreatableSelect, [{\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.select.focus();\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t_Async2.default,\n\t\t\t\tthis.props,\n\t\t\t\tfunction (_ref) {\n\t\t\t\t\tvar ref = _ref.ref,\n\t\t\t\t\t asyncProps = _objectWithoutProperties(_ref, ['ref']);\n\n\t\t\t\t\tvar asyncRef = ref;\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t_Creatable2.default,\n\t\t\t\t\t\tasyncProps,\n\t\t\t\t\t\tfunction (_ref2) {\n\t\t\t\t\t\t\tvar ref = _ref2.ref,\n\t\t\t\t\t\t\t creatableProps = _objectWithoutProperties(_ref2, ['ref']);\n\n\t\t\t\t\t\t\tvar creatableRef = ref;\n\t\t\t\t\t\t\treturn _this2.props.children(_extends({}, creatableProps, {\n\t\t\t\t\t\t\t\tref: function ref(select) {\n\t\t\t\t\t\t\t\t\tcreatableRef(select);\n\t\t\t\t\t\t\t\t\tasyncRef(select);\n\t\t\t\t\t\t\t\t\t_this2.select = select;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AsyncCreatableSelect;\n}(_react2.default.Component);\n\nvar defaultChildren = function defaultChildren(props) {\n\treturn _react2.default.createElement(_Select2.default, props);\n};\n\nAsyncCreatableSelect.propTypes = {\n\tchildren: _propTypes2.default.func.isRequired // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n};\n\nAsyncCreatableSelect.defaultProps = {\n\tchildren: defaultChildren\n};\n\nexports.default = AsyncCreatableSelect;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/AsyncCreatable.js\n// module id = 251\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/AsyncCreatable.js?");
|
||
|
||
/***/ }),
|
||
/* 252 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _defaultFilterOptions = __webpack_require__(243);\n\nvar _defaultFilterOptions2 = _interopRequireDefault(_defaultFilterOptions);\n\nvar _defaultMenuRenderer = __webpack_require__(246);\n\nvar _defaultMenuRenderer2 = _interopRequireDefault(_defaultMenuRenderer);\n\nvar _Select = __webpack_require__(238);\n\nvar _Select2 = _interopRequireDefault(_Select);\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CreatableSelect = function (_React$Component) {\n\t_inherits(CreatableSelect, _React$Component);\n\n\tfunction CreatableSelect(props, context) {\n\t\t_classCallCheck(this, CreatableSelect);\n\n\t\tvar _this = _possibleConstructorReturn(this, (CreatableSelect.__proto__ || Object.getPrototypeOf(CreatableSelect)).call(this, props, context));\n\n\t\t_this.filterOptions = _this.filterOptions.bind(_this);\n\t\t_this.menuRenderer = _this.menuRenderer.bind(_this);\n\t\t_this.onInputKeyDown = _this.onInputKeyDown.bind(_this);\n\t\t_this.onInputChange = _this.onInputChange.bind(_this);\n\t\t_this.onOptionSelect = _this.onOptionSelect.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(CreatableSelect, [{\n\t\tkey: 'createNewOption',\n\t\tvalue: function createNewOption() {\n\t\t\tvar _props = this.props,\n\t\t\t isValidNewOption = _props.isValidNewOption,\n\t\t\t newOptionCreator = _props.newOptionCreator,\n\t\t\t onNewOptionClick = _props.onNewOptionClick,\n\t\t\t _props$options = _props.options,\n\t\t\t options = _props$options === undefined ? [] : _props$options;\n\n\n\t\t\tif (isValidNewOption({ label: this.inputValue })) {\n\t\t\t\tvar option = newOptionCreator({ label: this.inputValue, labelKey: this.labelKey, valueKey: this.valueKey });\n\t\t\t\tvar _isOptionUnique = this.isOptionUnique({ option: option, options: options });\n\n\t\t\t\t// Don't add the same option twice.\n\t\t\t\tif (_isOptionUnique) {\n\t\t\t\t\tif (onNewOptionClick) {\n\t\t\t\t\t\tonNewOptionClick(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.unshift(option);\n\n\t\t\t\t\t\tthis.select.selectValue(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'filterOptions',\n\t\tvalue: function filterOptions() {\n\t\t\tvar _props2 = this.props,\n\t\t\t filterOptions = _props2.filterOptions,\n\t\t\t isValidNewOption = _props2.isValidNewOption,\n\t\t\t promptTextCreator = _props2.promptTextCreator,\n\t\t\t showNewOptionAtTop = _props2.showNewOptionAtTop;\n\n\t\t\t// TRICKY Check currently selected options as well.\n\t\t\t// Don't display a create-prompt for a value that's selected.\n\t\t\t// This covers async edge-cases where a newly-created Option isn't yet in the async-loaded array.\n\n\t\t\tvar excludeOptions = (arguments.length <= 2 ? undefined : arguments[2]) || [];\n\n\t\t\tvar filteredOptions = filterOptions.apply(undefined, arguments) || [];\n\n\t\t\tif (isValidNewOption({ label: this.inputValue })) {\n\t\t\t\tvar _newOptionCreator = this.props.newOptionCreator;\n\n\n\t\t\t\tvar option = _newOptionCreator({\n\t\t\t\t\tlabel: this.inputValue,\n\t\t\t\t\tlabelKey: this.labelKey,\n\t\t\t\t\tvalueKey: this.valueKey\n\t\t\t\t});\n\n\t\t\t\t// TRICKY Compare to all options (not just filtered options) in case option has already been selected).\n\t\t\t\t// For multi-selects, this would remove it from the filtered list.\n\t\t\t\tvar _isOptionUnique2 = this.isOptionUnique({\n\t\t\t\t\toption: option,\n\t\t\t\t\toptions: excludeOptions.concat(filteredOptions)\n\t\t\t\t});\n\n\t\t\t\tif (_isOptionUnique2) {\n\t\t\t\t\tvar prompt = promptTextCreator(this.inputValue);\n\n\t\t\t\t\tthis._createPlaceholderOption = _newOptionCreator({\n\t\t\t\t\t\tlabel: prompt,\n\t\t\t\t\t\tlabelKey: this.labelKey,\n\t\t\t\t\t\tvalueKey: this.valueKey\n\t\t\t\t\t});\n\n\t\t\t\t\tif (showNewOptionAtTop) {\n\t\t\t\t\t\tfilteredOptions.unshift(this._createPlaceholderOption);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfilteredOptions.push(this._createPlaceholderOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn filteredOptions;\n\t\t}\n\t}, {\n\t\tkey: 'isOptionUnique',\n\t\tvalue: function isOptionUnique(_ref) {\n\t\t\tvar option = _ref.option,\n\t\t\t options = _ref.options;\n\t\t\tvar isOptionUnique = this.props.isOptionUnique;\n\n\n\t\t\toptions = options || this.props.options;\n\n\t\t\treturn isOptionUnique({\n\t\t\t\tlabelKey: this.labelKey,\n\t\t\t\toption: option,\n\t\t\t\toptions: options,\n\t\t\t\tvalueKey: this.valueKey\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'menuRenderer',\n\t\tvalue: function menuRenderer(params) {\n\t\t\tvar menuRenderer = this.props.menuRenderer;\n\n\n\t\t\treturn menuRenderer(_extends({}, params, {\n\t\t\t\tonSelect: this.onOptionSelect,\n\t\t\t\tselectValue: this.onOptionSelect\n\t\t\t}));\n\t\t}\n\t}, {\n\t\tkey: 'onInputChange',\n\t\tvalue: function onInputChange(input) {\n\t\t\tvar onInputChange = this.props.onInputChange;\n\n\t\t\t// This value may be needed in between Select mounts (when this.select is null)\n\n\t\t\tthis.inputValue = input;\n\n\t\t\tif (onInputChange) {\n\t\t\t\tthis.inputValue = onInputChange(input);\n\t\t\t}\n\n\t\t\treturn this.inputValue;\n\t\t}\n\t}, {\n\t\tkey: 'onInputKeyDown',\n\t\tvalue: function onInputKeyDown(event) {\n\t\t\tvar _props3 = this.props,\n\t\t\t shouldKeyDownEventCreateNewOption = _props3.shouldKeyDownEventCreateNewOption,\n\t\t\t onInputKeyDown = _props3.onInputKeyDown;\n\n\t\t\tvar focusedOption = this.select.getFocusedOption();\n\n\t\t\tif (focusedOption && focusedOption === this._createPlaceholderOption && shouldKeyDownEventCreateNewOption(event)) {\n\t\t\t\tthis.createNewOption();\n\n\t\t\t\t// Prevent decorated Select from doing anything additional with this keyDown event\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if (onInputKeyDown) {\n\t\t\t\tonInputKeyDown(event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onOptionSelect',\n\t\tvalue: function onOptionSelect(option) {\n\t\t\tif (option === this._createPlaceholderOption) {\n\t\t\t\tthis.createNewOption();\n\t\t\t} else {\n\t\t\t\tthis.select.selectValue(option);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.select.focus();\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar _props4 = this.props,\n\t\t\t refProp = _props4.ref,\n\t\t\t restProps = _objectWithoutProperties(_props4, ['ref']);\n\n\t\t\tvar children = this.props.children;\n\n\t\t\t// We can't use destructuring default values to set the children,\n\t\t\t// because it won't apply work if `children` is null. A falsy check is\n\t\t\t// more reliable in real world use-cases.\n\n\t\t\tif (!children) {\n\t\t\t\tchildren = defaultChildren;\n\t\t\t}\n\n\t\t\tvar props = _extends({}, restProps, {\n\t\t\t\tallowCreate: true,\n\t\t\t\tfilterOptions: this.filterOptions,\n\t\t\t\tmenuRenderer: this.menuRenderer,\n\t\t\t\tonInputChange: this.onInputChange,\n\t\t\t\tonInputKeyDown: this.onInputKeyDown,\n\t\t\t\tref: function ref(_ref2) {\n\t\t\t\t\t_this2.select = _ref2;\n\n\t\t\t\t\t// These values may be needed in between Select mounts (when this.select is null)\n\t\t\t\t\tif (_ref2) {\n\t\t\t\t\t\t_this2.labelKey = _ref2.props.labelKey;\n\t\t\t\t\t\t_this2.valueKey = _ref2.props.valueKey;\n\t\t\t\t\t}\n\t\t\t\t\tif (refProp) {\n\t\t\t\t\t\trefProp(_ref2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn children(props);\n\t\t}\n\t}]);\n\n\treturn CreatableSelect;\n}(_react2.default.Component);\n\nvar defaultChildren = function defaultChildren(props) {\n\treturn _react2.default.createElement(_Select2.default, props);\n};\n\nvar isOptionUnique = function isOptionUnique(_ref3) {\n\tvar option = _ref3.option,\n\t options = _ref3.options,\n\t labelKey = _ref3.labelKey,\n\t valueKey = _ref3.valueKey;\n\n\tif (!options || !options.length) {\n\t\treturn true;\n\t}\n\n\treturn options.filter(function (existingOption) {\n\t\treturn existingOption[labelKey] === option[labelKey] || existingOption[valueKey] === option[valueKey];\n\t}).length === 0;\n};\n\nvar isValidNewOption = function isValidNewOption(_ref4) {\n\tvar label = _ref4.label;\n\treturn !!label;\n};\n\nvar newOptionCreator = function newOptionCreator(_ref5) {\n\tvar label = _ref5.label,\n\t labelKey = _ref5.labelKey,\n\t valueKey = _ref5.valueKey;\n\n\tvar option = {};\n\toption[valueKey] = label;\n\toption[labelKey] = label;\n\toption.className = 'Select-create-option-placeholder';\n\n\treturn option;\n};\n\nvar promptTextCreator = function promptTextCreator(label) {\n\treturn 'Create option \"' + label + '\"';\n};\n\nvar shouldKeyDownEventCreateNewOption = function shouldKeyDownEventCreateNewOption(_ref6) {\n\tvar keyCode = _ref6.keyCode;\n\n\tswitch (keyCode) {\n\t\tcase 9: // TAB\n\t\tcase 13: // ENTER\n\t\tcase 188:\n\t\t\t// COMMA\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\n// Default prop methods\nCreatableSelect.isOptionUnique = isOptionUnique;\nCreatableSelect.isValidNewOption = isValidNewOption;\nCreatableSelect.newOptionCreator = newOptionCreator;\nCreatableSelect.promptTextCreator = promptTextCreator;\nCreatableSelect.shouldKeyDownEventCreateNewOption = shouldKeyDownEventCreateNewOption;\n\nCreatableSelect.defaultProps = {\n\tfilterOptions: _defaultFilterOptions2.default,\n\tisOptionUnique: isOptionUnique,\n\tisValidNewOption: isValidNewOption,\n\tmenuRenderer: _defaultMenuRenderer2.default,\n\tnewOptionCreator: newOptionCreator,\n\tpromptTextCreator: promptTextCreator,\n\tshouldKeyDownEventCreateNewOption: shouldKeyDownEventCreateNewOption,\n\tshowNewOptionAtTop: true\n};\n\nCreatableSelect.propTypes = {\n\t// Child function responsible for creating the inner Select component\n\t// This component can be used to compose HOCs (eg Creatable and Async)\n\t// (props: Object): PropTypes.element\n\tchildren: _propTypes2.default.func,\n\n\t// See Select.propTypes.filterOptions\n\tfilterOptions: _propTypes2.default.any,\n\n\t// Searches for any matching option within the set of options.\n\t// This function prevents duplicate options from being created.\n\t// ({ option: Object, options: Array, labelKey: string, valueKey: string }): boolean\n\tisOptionUnique: _propTypes2.default.func,\n\n\t// Determines if the current input text represents a valid option.\n\t// ({ label: string }): boolean\n\tisValidNewOption: _propTypes2.default.func,\n\n\t// See Select.propTypes.menuRenderer\n\tmenuRenderer: _propTypes2.default.any,\n\n\t// Factory to create new option.\n\t// ({ label: string, labelKey: string, valueKey: string }): Object\n\tnewOptionCreator: _propTypes2.default.func,\n\n\t// input change handler: function (inputValue) {}\n\tonInputChange: _propTypes2.default.func,\n\n\t// input keyDown handler: function (event) {}\n\tonInputKeyDown: _propTypes2.default.func,\n\n\t// new option click handler: function (option) {}\n\tonNewOptionClick: _propTypes2.default.func,\n\n\t// See Select.propTypes.options\n\toptions: _propTypes2.default.array,\n\n\t// Creates prompt/placeholder option text.\n\t// (filterText: string): string\n\tpromptTextCreator: _propTypes2.default.func,\n\n\tref: _propTypes2.default.func,\n\n\t// Decides if a keyDown event (eg its `keyCode`) should result in the creation of a new option.\n\tshouldKeyDownEventCreateNewOption: _propTypes2.default.func,\n\n\t// Where to show prompt/placeholder option text.\n\t// true: new option prompt at top of list (default)\n\t// false: new option prompt at bottom of list\n\tshowNewOptionAtTop: _propTypes2.default.bool\n};\n\nexports.default = CreatableSelect;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/lib/Creatable.js\n// module id = 252\n// module chunks = 0\n//# sourceURL=webpack:///./~/react-select/lib/Creatable.js?");
|
||
|
||
/***/ }),
|
||
/* 253 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.httpInterceptor = undefined;\n\n__webpack_require__(254);\n\nvar httpInterceptor = exports.httpInterceptor = {\n get: function get(url) {\n return fetch(url, { credentials: 'same-origin', Accept: 'application/json' }).then(function (response) {\n if (response.status >= 200 && response.status < 300) {\n return response.json();\n }\n var error = new Error(response.statusText);\n error.response = response;\n throw error;\n });\n }\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/httpInterceptor.js\n// module id = 253\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/httpInterceptor.js?");
|
||
|
||
/***/ }),
|
||
/* 254 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var list = this.map[name]\n if (!list) {\n list = []\n this.map[name] = list\n }\n list.push(value)\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n var values = this.map[normalizeName(name)]\n return values ? values[0] : null\n }\n\n Headers.prototype.getAll = function(name) {\n return this.map[normalizeName(name)] || []\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = [normalizeValue(value)]\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n Object.getOwnPropertyNames(this.map).forEach(function(name) {\n this.map[name].forEach(function(value) {\n callback.call(thisArg, value, name, this)\n }, this)\n }, this)\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (typeof input === 'string') {\n this.url = input\n } else {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split('\\r\\n').forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/whatwg-fetch/fetch.js\n// module id = 254\n// module chunks = 0\n//# sourceURL=webpack:///./~/whatwg-fetch/fetch.js?");
|
||
|
||
/***/ }),
|
||
/* 255 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsEqual = __webpack_require__(62);\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isEqual.js\n// module id = 255\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/isEqual.js?");
|
||
|
||
/***/ }),
|
||
/* 256 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DropDown = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _AutoComplete = __webpack_require__(236);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DropDown = exports.DropDown = function (_PureComponent) {\n _inherits(DropDown, _PureComponent);\n\n function DropDown() {\n _classCallCheck(this, DropDown);\n\n return _possibleConstructorReturn(this, (DropDown.__proto__ || Object.getPrototypeOf(DropDown)).apply(this, arguments));\n }\n\n _createClass(DropDown, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(_AutoComplete.AutoComplete, _extends({}, this.props, {\n asynchronous: false,\n minimumInput: 0,\n searchable: this.props.searchable\n }));\n }\n }]);\n\n return DropDown;\n}(_react.PureComponent);\n\nDropDown.propTypes = {\n autofocus: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n labelKey: _propTypes2.default.string,\n onValueChange: _propTypes2.default.func,\n options: _propTypes2.default.array,\n searchable: _propTypes2.default.bool,\n validations: _propTypes2.default.array,\n value: _propTypes2.default.any,\n valueKey: _propTypes2.default.string\n};\n\nDropDown.defaultProps = {\n autofocus: false,\n enabled: true,\n labelKey: 'display',\n valueKey: 'uuid',\n searchable: false\n};\n\nvar descriptor = {\n control: DropDown,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('dropDown', descriptor);\n\n_componentStore2.default.registerComponent('dropDown', DropDown);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DropDown.jsx\n// module id = 256\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/DropDown.jsx?");
|
||
|
||
/***/ }),
|
||
/* 257 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BooleanControl = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _UnSupportedComponent = __webpack_require__(227);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BooleanControl = exports.BooleanControl = function (_Component) {\n _inherits(BooleanControl, _Component);\n\n function BooleanControl(props) {\n _classCallCheck(this, BooleanControl);\n\n var _this = _possibleConstructorReturn(this, (BooleanControl.__proto__ || Object.getPrototypeOf(BooleanControl)).call(this, props));\n\n _this.onValueChange = _this.onValueChange.bind(_this);\n return _this;\n }\n\n _createClass(BooleanControl, [{\n key: 'onValueChange',\n value: function onValueChange(value, errors) {\n var updatedValue = value ? value.value : undefined;\n this.props.onChange(updatedValue, errors);\n }\n }, {\n key: '_getOptionsRepresentation',\n value: function _getOptionsRepresentation(options) {\n var _this2 = this;\n\n var optionsRepresentation = [];\n (0, _map2.default)(options, function (option) {\n var message = {\n id: option.translationKey || 'defaultId',\n defaultMessage: option.name\n };\n var formattedMessage = _this2.context.intl.formatMessage(message);\n optionsRepresentation.push({ name: formattedMessage, value: option.value });\n });\n return optionsRepresentation;\n }\n }, {\n key: '_getValue',\n value: function _getValue(options, value) {\n var updatedValue = (0, _find2.default)(options, ['value', value]);\n return updatedValue ? this._getOptionsRepresentation([updatedValue])[0] : undefined;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n formFieldPath = _props.formFieldPath,\n enabled = _props.enabled,\n options = _props.options,\n validations = _props.validations,\n validate = _props.validate,\n validateForm = _props.validateForm;\n\n var registeredComponent = _componentStore2.default.getRegisteredComponent('button');\n if (registeredComponent) {\n var initialValue = this._getValue(options, this.props.value);\n var childProps = {\n enabled: enabled,\n formFieldPath: formFieldPath,\n value: initialValue,\n onValueChange: this.onValueChange,\n options: this._getOptionsRepresentation(options),\n validate: validate,\n validateForm: validateForm,\n validations: validations\n };\n return _react2.default.createElement(registeredComponent, childProps);\n }\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_UnSupportedComponent.UnSupportedComponent, {\n message: 'Button component is not supported'\n })\n );\n }\n }]);\n\n return BooleanControl;\n}(_react.Component);\n\nBooleanControl.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n options: _propTypes2.default.array.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.any\n};\n\nBooleanControl.defaultProps = {\n enabled: true\n};\n\nBooleanControl.contextTypes = {\n intl: _propTypes2.default.object.isRequired\n};\n\n_componentStore2.default.registerComponent('boolean', BooleanControl);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/BooleanControl.jsx\n// module id = 257\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/BooleanControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 258 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RadioButton = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Validator = __webpack_require__(229);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar RadioButton = exports.RadioButton = function (_Component) {\n _inherits(RadioButton, _Component);\n\n function RadioButton(props) {\n _classCallCheck(this, RadioButton);\n\n var _this = _possibleConstructorReturn(this, (RadioButton.__proto__ || Object.getPrototypeOf(RadioButton)).call(this, props));\n\n _this.state = { value: props.value, hasErrors: false };\n return _this;\n }\n\n _createClass(RadioButton, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.validate) {\n var errors = this._getErrors(nextProps.value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n if (this.props.value !== nextProps.value || this.state.value !== nextState.value || this.state.hasErrors !== nextState.hasErrors) {\n return true;\n }\n return false;\n }\n }, {\n key: 'changeValue',\n value: function changeValue(value) {\n var errors = this._getErrors(value);\n this.setState({ value: value, hasErrors: this._hasErrors(errors) });\n this.props.onValueChange(value, errors);\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n var validations = this.props.validations;\n var controlDetails = { validations: validations, value: value };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: 'displayRadioButtons',\n value: function displayRadioButtons() {\n var _this2 = this;\n\n var name = (Math.random() * 1e32).toString(36);\n return (0, _map2.default)(this.props.options, function (option, index) {\n return _react2.default.createElement(\n 'div',\n { className: 'options-list', key: index, onClick: function onClick() {\n return _this2.changeValue(option.value);\n } },\n _react2.default.createElement('input', {\n checked: _this2.state.value === option.value,\n key: index,\n name: name,\n type: 'radio',\n value: option.value\n }),\n option.name\n );\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var className = (0, _classnames2.default)('form-builder-radio', { 'form-builder-error': this.state.hasErrors });\n return _react2.default.createElement(\n 'div',\n { className: className },\n this.displayRadioButtons()\n );\n }\n }]);\n\n return RadioButton;\n}(_react.Component);\n\nRadioButton.propTypes = {\n onValueChange: _propTypes2.default.func.isRequired,\n options: _propTypes2.default.array.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.any\n};\n\n_componentStore2.default.registerComponent('radio', RadioButton);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/RadioButton.jsx\n// module id = 258\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/RadioButton.jsx?");
|
||
|
||
/***/ }),
|
||
/* 259 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Button = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Validator = __webpack_require__(229);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _clone = __webpack_require__(260);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _filter = __webpack_require__(187);\n\nvar _filter2 = _interopRequireDefault(_filter);\n\nvar _isEqual = __webpack_require__(255);\n\nvar _isEqual2 = _interopRequireDefault(_isEqual);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Button = exports.Button = function (_Component) {\n _inherits(Button, _Component);\n\n function Button(props) {\n _classCallCheck(this, Button);\n\n var _this = _possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).call(this, props));\n\n var errors = _this._getErrors(props.value) || [];\n var hasErrors = _this._isCreateByAddMore() ? _this._hasErrors(errors) : false;\n _this.state = { hasErrors: hasErrors };\n return _this;\n }\n\n _createClass(Button, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n value = _props.value,\n validateForm = _props.validateForm;\n\n if (this.state.hasErrors || value !== undefined || validateForm) {\n this.props.onValueChange(value, this._getErrors(value));\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.validate || !(0, _isEqual2.default)(this.props.value, nextProps.value)) {\n var errors = this._getErrors(nextProps.value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n this.isValueChanged = !(0, _isEqual2.default)(this.props.value, nextProps.value);\n if (this.isValueChanged || this.state.hasErrors !== nextState.hasErrors || this.props.enabled !== nextProps.enabled) {\n return true;\n }\n return false;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.props.value);\n if (this._hasErrors(errors)) {\n this.props.onValueChange(this.props.value, errors);\n }\n if (this.isValueChanged) {\n this.props.onValueChange(this.props.value, errors);\n }\n }\n }, {\n key: 'changeValue',\n value: function changeValue(valueSelected) {\n var value = this._getValue(valueSelected);\n var errors = this._getErrors(value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n this.props.onValueChange(value, errors);\n }\n }, {\n key: '_getValue',\n value: function _getValue(valueSelected) {\n var multiSelect = this.props.multiSelect;\n\n var value = this._getValueFromProps() || [];\n if (this._isActive(valueSelected)) {\n if (multiSelect) {\n var valueKey = this.props.valueKey;\n value = (0, _filter2.default)(value, function (val) {\n return val[valueKey] !== valueSelected[valueKey];\n });\n } else {\n value = [];\n }\n } else {\n value = multiSelect ? (0, _clone2.default)(value) : [];\n value.push(valueSelected);\n }\n return multiSelect ? value : value[0];\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n var validations = this.props.validations;\n var controlDetails = { validations: validations, value: value };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: '_isActive',\n value: function _isActive(option) {\n var valueKey = this.props.valueKey;\n return (0, _find2.default)(this._getValueFromProps(), function (value) {\n return option[valueKey] === value[valueKey];\n });\n }\n }, {\n key: '_getValueFromProps',\n value: function _getValueFromProps() {\n var _props2 = this.props,\n multiSelect = _props2.multiSelect,\n value = _props2.value;\n\n if (value) {\n return multiSelect ? value : [value];\n }\n return undefined;\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: 'displayButtons',\n value: function displayButtons() {\n var _this2 = this;\n\n return (0, _map2.default)(this.props.options, function (option, index) {\n return _react2.default.createElement(\n 'button',\n {\n className: (0, _classnames2.default)('fl', { active: _this2._isActive(option) }),\n disabled: !_this2.props.enabled,\n key: index,\n onClick: function onClick() {\n return _this2.changeValue(option);\n }\n },\n _react2.default.createElement('i', { className: 'fa fa-ok' }),\n option[_this2.props.nameKey]\n );\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var className = (0, _classnames2.default)('form-control-buttons', { 'form-builder-error': this.state.hasErrors });\n return _react2.default.createElement(\n 'div',\n { className: className },\n this.displayButtons()\n );\n }\n }]);\n\n return Button;\n}(_react.Component);\n\nButton.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n multiSelect: _propTypes2.default.bool,\n nameKey: _propTypes2.default.string,\n onValueChange: _propTypes2.default.func.isRequired,\n options: _propTypes2.default.array.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.any,\n valueKey: _propTypes2.default.string\n};\n\nButton.defaultProps = {\n enabled: true,\n valueKey: 'value',\n nameKey: 'name'\n};\n\n_componentStore2.default.registerComponent('button', Button);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Button.jsx\n// module id = 259\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Button.jsx?");
|
||
|
||
/***/ }),
|
||
/* 260 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseClone = __webpack_require__(261);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/clone.js\n// module id = 260\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/clone.js?");
|
||
|
||
/***/ }),
|
||
/* 261 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Stack = __webpack_require__(18),\n arrayEach = __webpack_require__(166),\n assignValue = __webpack_require__(262),\n baseAssign = __webpack_require__(263),\n baseAssignIn = __webpack_require__(265),\n cloneBuffer = __webpack_require__(269),\n copyArray = __webpack_require__(270),\n copySymbols = __webpack_require__(271),\n copySymbolsIn = __webpack_require__(272),\n getAllKeys = __webpack_require__(75),\n getAllKeysIn = __webpack_require__(275),\n getTag = __webpack_require__(102),\n initCloneArray = __webpack_require__(276),\n initCloneByTag = __webpack_require__(277),\n initCloneObject = __webpack_require__(283),\n isArray = __webpack_require__(78),\n isBuffer = __webpack_require__(88),\n isMap = __webpack_require__(285),\n isObject = __webpack_require__(42),\n isSet = __webpack_require__(287),\n keys = __webpack_require__(82);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n\n return result;\n }\n\n if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n\n return result;\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseClone.js\n// module id = 261\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseClone.js?");
|
||
|
||
/***/ }),
|
||
/* 262 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseAssignValue = __webpack_require__(144),\n eq = __webpack_require__(23);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_assignValue.js\n// module id = 262\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_assignValue.js?");
|
||
|
||
/***/ }),
|
||
/* 263 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var copyObject = __webpack_require__(264),\n keys = __webpack_require__(82);\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssign.js\n// module id = 263\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseAssign.js?");
|
||
|
||
/***/ }),
|
||
/* 264 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var assignValue = __webpack_require__(262),\n baseAssignValue = __webpack_require__(144);\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copyObject.js\n// module id = 264\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_copyObject.js?");
|
||
|
||
/***/ }),
|
||
/* 265 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var copyObject = __webpack_require__(264),\n keysIn = __webpack_require__(266);\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssignIn.js\n// module id = 265\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseAssignIn.js?");
|
||
|
||
/***/ }),
|
||
/* 266 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayLikeKeys = __webpack_require__(83),\n baseKeysIn = __webpack_require__(267),\n isArrayLike = __webpack_require__(101);\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/keysIn.js\n// module id = 266\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/keysIn.js?");
|
||
|
||
/***/ }),
|
||
/* 267 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isObject = __webpack_require__(42),\n isPrototype = __webpack_require__(98),\n nativeKeysIn = __webpack_require__(268);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeysIn.js\n// module id = 267\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseKeysIn.js?");
|
||
|
||
/***/ }),
|
||
/* 268 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeysIn.js\n// module id = 268\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_nativeKeysIn.js?");
|
||
|
||
/***/ }),
|
||
/* 269 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(38);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(89)(module)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneBuffer.js\n// module id = 269\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_cloneBuffer.js?");
|
||
|
||
/***/ }),
|
||
/* 270 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copyArray.js\n// module id = 270\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_copyArray.js?");
|
||
|
||
/***/ }),
|
||
/* 271 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var copyObject = __webpack_require__(264),\n getSymbols = __webpack_require__(79);\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copySymbols.js\n// module id = 271\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_copySymbols.js?");
|
||
|
||
/***/ }),
|
||
/* 272 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var copyObject = __webpack_require__(264),\n getSymbolsIn = __webpack_require__(273);\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copySymbolsIn.js\n// module id = 272\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_copySymbolsIn.js?");
|
||
|
||
/***/ }),
|
||
/* 273 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var arrayPush = __webpack_require__(77),\n getPrototype = __webpack_require__(274),\n getSymbols = __webpack_require__(79),\n stubArray = __webpack_require__(81);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getSymbolsIn.js\n// module id = 273\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_getSymbolsIn.js?");
|
||
|
||
/***/ }),
|
||
/* 274 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var overArg = __webpack_require__(100);\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getPrototype.js\n// module id = 274\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_getPrototype.js?");
|
||
|
||
/***/ }),
|
||
/* 275 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseGetAllKeys = __webpack_require__(76),\n getSymbolsIn = __webpack_require__(273),\n keysIn = __webpack_require__(266);\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getAllKeysIn.js\n// module id = 275\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_getAllKeysIn.js?");
|
||
|
||
/***/ }),
|
||
/* 276 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneArray.js\n// module id = 276\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_initCloneArray.js?");
|
||
|
||
/***/ }),
|
||
/* 277 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var cloneArrayBuffer = __webpack_require__(278),\n cloneDataView = __webpack_require__(279),\n cloneRegExp = __webpack_require__(280),\n cloneSymbol = __webpack_require__(281),\n cloneTypedArray = __webpack_require__(282);\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneByTag.js\n// module id = 277\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_initCloneByTag.js?");
|
||
|
||
/***/ }),
|
||
/* 278 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Uint8Array = __webpack_require__(71);\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneArrayBuffer.js\n// module id = 278\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_cloneArrayBuffer.js?");
|
||
|
||
/***/ }),
|
||
/* 279 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var cloneArrayBuffer = __webpack_require__(278);\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneDataView.js\n// module id = 279\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_cloneDataView.js?");
|
||
|
||
/***/ }),
|
||
/* 280 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneRegExp.js\n// module id = 280\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_cloneRegExp.js?");
|
||
|
||
/***/ }),
|
||
/* 281 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var Symbol = __webpack_require__(37);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneSymbol.js\n// module id = 281\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_cloneSymbol.js?");
|
||
|
||
/***/ }),
|
||
/* 282 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var cloneArrayBuffer = __webpack_require__(278);\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneTypedArray.js\n// module id = 282\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_cloneTypedArray.js?");
|
||
|
||
/***/ }),
|
||
/* 283 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseCreate = __webpack_require__(284),\n getPrototype = __webpack_require__(274),\n isPrototype = __webpack_require__(98);\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneObject.js\n// module id = 283\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_initCloneObject.js?");
|
||
|
||
/***/ }),
|
||
/* 284 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isObject = __webpack_require__(42);\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseCreate.js\n// module id = 284\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseCreate.js?");
|
||
|
||
/***/ }),
|
||
/* 285 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsMap = __webpack_require__(286),\n baseUnary = __webpack_require__(95),\n nodeUtil = __webpack_require__(96);\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isMap.js\n// module id = 285\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/isMap.js?");
|
||
|
||
/***/ }),
|
||
/* 286 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getTag = __webpack_require__(102),\n isObjectLike = __webpack_require__(87);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsMap.js\n// module id = 286\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseIsMap.js?");
|
||
|
||
/***/ }),
|
||
/* 287 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseIsSet = __webpack_require__(288),\n baseUnary = __webpack_require__(95),\n nodeUtil = __webpack_require__(96);\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isSet.js\n// module id = 287\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/isSet.js?");
|
||
|
||
/***/ }),
|
||
/* 288 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var getTag = __webpack_require__(102),\n isObjectLike = __webpack_require__(87);\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsSet.js\n// module id = 288\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseIsSet.js?");
|
||
|
||
/***/ }),
|
||
/* 289 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CodedControl = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _each = __webpack_require__(164);\n\nvar _each2 = _interopRequireDefault(_each);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CodedControl = exports.CodedControl = function (_Component) {\n _inherits(CodedControl, _Component);\n\n function CodedControl(props) {\n _classCallCheck(this, CodedControl);\n\n var _this = _possibleConstructorReturn(this, (CodedControl.__proto__ || Object.getPrototypeOf(CodedControl)).call(this, props));\n\n _this.onValueChange = _this.onValueChange.bind(_this);\n return _this;\n }\n\n _createClass(CodedControl, [{\n key: 'onValueChange',\n value: function onValueChange(value, errors) {\n var updatedValue = this._getUpdatedValue(value);\n this.props.onChange(updatedValue, errors);\n }\n }, {\n key: '_getUpdatedValue',\n value: function _getUpdatedValue(value) {\n var multiSelect = this.props.properties.multiSelect;\n if (value) {\n var updatedValue = multiSelect ? value : [value];\n return this._getOptionsFromValues(updatedValue, multiSelect);\n }\n return undefined;\n }\n }, {\n key: '_getOptionsFromValues',\n value: function _getOptionsFromValues(values, multiSelect) {\n var _this2 = this;\n\n var options = [];\n (0, _each2.default)(values, function (value) {\n options.push((0, _find2.default)(_this2.props.options, ['uuid', value.value]));\n });\n return multiSelect ? options : options[0];\n }\n }, {\n key: '_getOptionsRepresentation',\n value: function _getOptionsRepresentation(options) {\n var _this3 = this;\n\n var optionsRepresentation = [];\n (0, _map2.default)(options, function (option) {\n var message = {\n id: option.translationKey || 'defaultId',\n defaultMessage: option.name.display || option.name\n };\n var formattedMessage = _this3.context.intl.formatMessage(message);\n optionsRepresentation.push({ name: formattedMessage, value: option.uuid });\n });\n return optionsRepresentation;\n }\n }, {\n key: '_getValue',\n value: function _getValue(value, multiSelect) {\n var _this4 = this;\n\n if (value) {\n var updatedValue = multiSelect ? value : [value];\n updatedValue.map(function (val) {\n var updatedVal = val;\n var codedAnswer = (0, _find2.default)(_this4.props.options, function (option) {\n return option.uuid === val.uuid;\n });\n updatedVal.translationKey = codedAnswer ? codedAnswer.translationKey : '';\n return updatedVal;\n });\n var options = this._getOptionsRepresentation(updatedValue, multiSelect);\n return multiSelect ? options : options[0];\n }\n return undefined;\n }\n }, {\n key: '_getChildProps',\n value: function _getChildProps(displayType) {\n var _props = this.props,\n enabled = _props.enabled,\n formFieldPath = _props.formFieldPath,\n value = _props.value,\n validate = _props.validate,\n validateForm = _props.validateForm,\n validations = _props.validations,\n multiSelect = _props.properties.multiSelect;\n\n var props = {\n enabled: enabled,\n formFieldPath: formFieldPath,\n value: this._getValue(value, multiSelect),\n onValueChange: this.onValueChange,\n options: this._getOptionsRepresentation(this.props.options, multiSelect),\n validate: validate,\n validateForm: validateForm,\n validations: validations,\n multiSelect: multiSelect\n };\n if (displayType === 'autoComplete' || displayType === 'dropDown') {\n props.asynchronous = false;\n props.labelKey = 'name';\n props.valueKey = 'value';\n }\n return props;\n }\n }, {\n key: '_getDisplayType',\n value: function _getDisplayType(properties) {\n if (properties.autoComplete) {\n return 'autoComplete';\n } else if (properties.dropDown) {\n return 'dropDown';\n }\n return 'button';\n }\n }, {\n key: 'render',\n value: function render() {\n var properties = this.props.properties;\n\n var displayType = this._getDisplayType(properties);\n var registeredComponent = _componentStore2.default.getRegisteredComponent(displayType);\n if (registeredComponent) {\n var childProps = this._getChildProps(displayType);\n return _react2.default.createElement(registeredComponent, childProps);\n }\n return null;\n }\n }]);\n\n return CodedControl;\n}(_react.Component);\n\nCodedControl.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n options: _propTypes2.default.array.isRequired,\n properties: _propTypes2.default.object.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.any\n};\n\nCodedControl.contextTypes = {\n intl: _propTypes2.default.object.isRequired\n};\n\n_componentStore2.default.registerComponent('Coded', CodedControl);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/CodedControl.jsx\n// module id = 289\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/CodedControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 290 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Date = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Validator = __webpack_require__(229);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Date = exports.Date = function (_Component) {\n _inherits(Date, _Component);\n\n function Date(props) {\n _classCallCheck(this, Date);\n\n var _this = _possibleConstructorReturn(this, (Date.__proto__ || Object.getPrototypeOf(Date)).call(this, props));\n\n var errors = _this._getErrors(props.value) || [];\n var hasErrors = _this._isCreateByAddMore() ? _this._hasErrors(errors) : false;\n _this.state = { hasErrors: hasErrors };\n return _this;\n }\n\n _createClass(Date, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n value = _props.value,\n validateForm = _props.validateForm;\n\n if (this.state.hasErrors || typeof value !== 'undefined' || validateForm) {\n this.props.onChange(value, this._getErrors(value));\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.validate) {\n var errors = this._getErrors(nextProps.value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n this.isValueChanged = this.props.value !== nextProps.value;\n if (this.props.enabled !== nextProps.enabled || this.isValueChanged || this.state.hasErrors !== nextState.hasErrors) {\n return true;\n }\n return false;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.props.value);\n if (this._hasErrors(errors)) {\n this.props.onChange(this.props.value, errors);\n }\n if (this.isValueChanged) {\n this.props.onChange(this.props.value, errors);\n }\n }\n }, {\n key: 'handleChange',\n value: function handleChange(e) {\n var value = e.target.value;\n value = value === '' ? undefined : value;\n\n var errors = this._getErrors(value);\n this.setState({ hasErrors: this._hasErrors(errors) });\n this.props.onChange(value, errors);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n var validations = this.props.validations;\n var controlDetails = { validations: validations, value: value };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var defaultValue = this.props.value || '';\n return _react2.default.createElement('input', {\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n onChange: function onChange(e) {\n return _this2.handleChange(e);\n },\n type: 'date',\n value: defaultValue\n });\n }\n }]);\n\n return Date;\n}(_react.Component);\n\nDate.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\n_componentStore2.default.registerComponent('date', Date);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Date.jsx\n// module id = 290\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Date.jsx?");
|
||
|
||
/***/ }),
|
||
/* 291 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DateTime = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Validator = __webpack_require__(229);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _Error = __webpack_require__(231);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DateTime = exports.DateTime = function (_Component) {\n _inherits(DateTime, _Component);\n\n function DateTime(props) {\n _classCallCheck(this, DateTime);\n\n var _this = _possibleConstructorReturn(this, (DateTime.__proto__ || Object.getPrototypeOf(DateTime)).call(this, props));\n\n _this.dateValue = props.value ? props.value.split(' ')[0] : '';\n _this.timeValue = props.value ? props.value.split(' ')[1] : '';\n var errors = _this._getAllErrors();\n var hasErrors = _this._isCreateByAddMore() ? _this._hasErrors(errors) : false;\n _this.state = { hasErrors: hasErrors };\n return _this;\n }\n\n _createClass(DateTime, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n value = _props.value,\n validateForm = _props.validateForm;\n\n if (this.state.hasErrors || typeof value !== 'undefined' || validateForm) {\n this.props.onChange(value, this._getAllErrors());\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.validate) {\n this.dateValue = nextProps.value ? nextProps.value.split(' ')[0] : '';\n this.timeValue = nextProps.value ? nextProps.value.split(' ')[1] : '';\n var errors = this._getAllErrors();\n this.setState({ hasErrors: this._hasErrors(errors) });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n this.isValueChanged = this.props.value !== nextProps.value;\n if (this.props.enabled !== nextProps.enabled || this.isValueChanged || this.state.hasErrors !== nextState.hasErrors) {\n return true;\n }\n return false;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getAllErrors();\n var dateTimeValue = !this.valueNotFilled() ? this.dateValue + ' ' + this.timeValue : undefined;\n this.props.onChange(dateTimeValue, errors);\n if (this.isValueChanged) {\n this.props.onChange(this.props.value, errors);\n }\n }\n }, {\n key: 'handleDateChange',\n value: function handleDateChange(e) {\n this.dateValue = e.target.value;\n this.updateParent();\n }\n }, {\n key: 'handleTimeChange',\n value: function handleTimeChange(e) {\n this.timeValue = e.target.value;\n this.updateParent();\n }\n }, {\n key: 'updateParent',\n value: function updateParent() {\n var errors = this._getAllErrors();\n var dateTimeValue = !this.valueNotFilled() ? this.dateValue + ' ' + this.timeValue : undefined;\n this.setState({ hasErrors: this._hasErrors(errors) });\n this.props.onChange(dateTimeValue, errors);\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: '_getAllErrors',\n value: function _getAllErrors() {\n var allErrors = this._getDateErrors(this.dateValue);\n if (this.isValid()) {\n return allErrors;\n }\n allErrors.push(new _Error.Error({ message: 'Incorrect Date Time' }));\n return allErrors;\n }\n }, {\n key: 'isValid',\n value: function isValid() {\n return this.valueNotFilled() || this.valueCompletelyFilled();\n }\n }, {\n key: 'valueNotFilled',\n value: function valueNotFilled() {\n return this.dateValue === '' && this.timeValue === '';\n }\n }, {\n key: 'valueCompletelyFilled',\n value: function valueCompletelyFilled() {\n return this.dateValue !== '' && this.timeValue !== '';\n }\n }, {\n key: '_getDateErrors',\n value: function _getDateErrors(value) {\n var validations = this.props.validations;\n var controlDetails = { validations: validations, value: value };\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement('input', {\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n onChange: function onChange(e) {\n return _this2.handleDateChange(e);\n },\n type: 'date',\n value: this.dateValue\n }),\n _react2.default.createElement('input', {\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n onChange: function onChange(e) {\n return _this2.handleTimeChange(e);\n },\n type: 'time',\n value: this.timeValue\n })\n );\n }\n }]);\n\n return DateTime;\n}(_react.Component);\n\nDateTime.propTypes = {\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\n_componentStore2.default.registerComponent('dateTime', DateTime);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DateTime.jsx\n// module id = 291\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/DateTime.jsx?");
|
||
|
||
/***/ }),
|
||
/* 292 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Section = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _immutable = __webpack_require__(172);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _controlsParser = __webpack_require__(11);\n\nvar _AddMoreDecorator = __webpack_require__(195);\n\nvar _AddMoreDecorator2 = _interopRequireDefault(_AddMoreDecorator);\n\nvar _reactIntl = __webpack_require__(198);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Section = exports.Section = function (_addMoreDecorator) {\n _inherits(Section, _addMoreDecorator);\n\n function Section(props) {\n _classCallCheck(this, Section);\n\n var _this = _possibleConstructorReturn(this, (Section.__proto__ || Object.getPrototypeOf(Section)).call(this, props));\n\n var collapse = _this.props.collapse;\n\n _this.state = { errors: [], collapse: collapse };\n _this.onChange = _this.onChange.bind(_this);\n _this._onCollapse = _this._onCollapse.bind(_this);\n _this.onControlAdd = _this.onControlAdd.bind(_this);\n _this.onControlRemove = _this.onControlRemove.bind(_this);\n _this.onAddControl = _this.onAddControl.bind(_this);\n _this.onRemoveControl = _this.onRemoveControl.bind(_this);\n return _this;\n }\n\n _createClass(Section, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.collapse !== undefined && (nextProps.collapse !== this.props.collapse || nextProps.collapse !== this.state.collapse)) {\n this.setState({ collapse: nextProps.collapse });\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(formFieldPath, value, errors, onActionDone) {\n this.props.onValueChanged(formFieldPath, value, errors, onActionDone);\n }\n }, {\n key: 'onControlAdd',\n value: function onControlAdd(formFieldPath) {\n this.props.onControlAdd(formFieldPath);\n }\n }, {\n key: 'onControlRemove',\n value: function onControlRemove(formFieldPath) {\n this.props.onControlRemove(formFieldPath);\n }\n }, {\n key: '_onCollapse',\n value: function _onCollapse() {\n var collapse = !this.state.collapse;\n this.setState({ collapse: collapse });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n collapse = _props.collapse,\n enabled = _props.enabled,\n formName = _props.formName,\n formVersion = _props.formVersion,\n label = _props.metadata.label,\n onEventTrigger = _props.onEventTrigger,\n patientUuid = _props.patientUuid,\n validate = _props.validate,\n validateForm = _props.validateForm,\n showNotification = _props.showNotification;\n\n var childProps = {\n collapse: collapse,\n enabled: enabled,\n formName: formName,\n formVersion: formVersion,\n validate: validate,\n validateForm: validateForm,\n onValueChanged: this.onChange,\n onControlAdd: this.onControlAdd,\n onControlRemove: this.onControlRemove,\n onEventTrigger: onEventTrigger,\n patientUuid: patientUuid,\n showNotification: showNotification\n };\n var groupedRowControls = (0, _controlsParser.getGroupedControls)(this.props.metadata.controls, 'row');\n var sectionClass = this.state.collapse ? 'closing-group-controls' : 'active-group-controls';\n var toggleClass = 'form-builder-toggle ' + (0, _classnames2.default)({ active: !this.state.collapse });\n var disableClass = this.props.enabled ? '' : ' disabled';\n\n return _react2.default.createElement(\n 'fieldset',\n { className: 'form-builder-fieldset' },\n this.showAddMore(),\n _react2.default.createElement(\n 'legend',\n { className: '' + toggleClass + disableClass, onClick: this._onCollapse },\n _react2.default.createElement('i', { className: 'fa fa-caret-down' }),\n _react2.default.createElement('i', { className: 'fa fa-caret-right' }),\n _react2.default.createElement(\n 'strong',\n null,\n _react2.default.createElement(_reactIntl.FormattedMessage, {\n defaultMessage: label.value,\n id: label.translationKey || 'defaultId'\n })\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'obsGroup-controls ' + sectionClass + disableClass },\n (0, _controlsParser.displayRowControls)(groupedRowControls, this.props.children.toArray(), childProps)\n )\n );\n }\n }]);\n\n return Section;\n}((0, _AddMoreDecorator2.default)(_react.Component));\n\nSection.propTypes = {\n children: _propTypes2.default.any,\n collapse: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n formName: _propTypes2.default.string.isRequired,\n formVersion: _propTypes2.default.string.isRequired,\n metadata: _propTypes2.default.shape({\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.shape({\n type: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.string.isRequired\n }).isRequired,\n properties: _propTypes2.default.object,\n type: _propTypes2.default.string.isRequired,\n controls: _propTypes2.default.array\n }),\n onEventTrigger: _propTypes2.default.func,\n onValueChanged: _propTypes2.default.func.isRequired,\n patientUuid: _propTypes2.default.string,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired\n};\n\nSection.defaultProps = {\n children: _immutable.List.of([]),\n enabled: true\n};\n\n_componentStore2.default.registerComponent('section', Section);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Section.jsx\n// module id = 292\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Section.jsx?");
|
||
|
||
/***/ }),
|
||
/* 293 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Table = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _immutable = __webpack_require__(172);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _controlsParser = __webpack_require__(11);\n\nvar _reactIntl = __webpack_require__(198);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Table = exports.Table = function (_Component) {\n _inherits(Table, _Component);\n\n function Table(props) {\n _classCallCheck(this, Table);\n\n var _this = _possibleConstructorReturn(this, (Table.__proto__ || Object.getPrototypeOf(Table)).call(this, props));\n\n _this.state = { errors: [] };\n _this.onChange = _this.onChange.bind(_this);\n _this.displayColumnHeaders = _this.displayColumnHeaders.bind(_this);\n return _this;\n }\n\n _createClass(Table, [{\n key: 'onChange',\n value: function onChange(formFieldPath, value, errors, onActionDone) {\n this.props.onValueChanged(formFieldPath, value, errors, onActionDone);\n }\n }, {\n key: 'displayLabel',\n value: function displayLabel(label) {\n return _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('control-wrapper-content') },\n _react2.default.createElement(\n 'strong',\n null,\n _react2.default.createElement(_reactIntl.FormattedMessage, {\n defaultMessage: label.value,\n id: label.translationKey || 'defaultId'\n })\n )\n );\n }\n }, {\n key: 'displayColumnHeaders',\n value: function displayColumnHeaders(columnHeaders) {\n var _this2 = this;\n\n return columnHeaders.map(function (columnHeader) {\n return _this2.displayLabel(columnHeader);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n enabled = _props.enabled,\n formName = _props.formName,\n formVersion = _props.formVersion,\n label = _props.metadata.label,\n onEventTrigger = _props.onEventTrigger,\n patientUuid = _props.patientUuid,\n validate = _props.validate,\n validateForm = _props.validateForm,\n showNotification = _props.showNotification;\n\n var childProps = {\n enabled: enabled,\n formName: formName,\n formVersion: formVersion,\n validate: validate,\n validateForm: validateForm,\n onValueChanged: this.onChange,\n onEventTrigger: onEventTrigger,\n patientUuid: patientUuid,\n showNotification: showNotification\n };\n var groupedRowControls = (0, _controlsParser.getGroupedControls)(this.props.metadata.controls, 'row');\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n 'strong',\n { className: 'table-header' },\n _react2.default.createElement(_reactIntl.FormattedMessage, {\n defaultMessage: label.value,\n id: label.translationKey || 'defaultId'\n })\n ),\n _react2.default.createElement(\n 'div',\n { className: 'table-controls' },\n _react2.default.createElement(\n 'div',\n { className: 'header' },\n this.displayColumnHeaders(this.props.metadata.columnHeaders)\n ),\n _react2.default.createElement(\n 'div',\n null,\n (0, _controlsParser.displayRowControls)(groupedRowControls, this.props.children.toArray(), childProps, true)\n )\n )\n );\n }\n }]);\n\n return Table;\n}(_react.Component);\n\nTable.propTypes = {\n children: _propTypes2.default.any,\n enabled: _propTypes2.default.bool,\n formName: _propTypes2.default.string.isRequired,\n formVersion: _propTypes2.default.string.isRequired,\n metadata: _propTypes2.default.shape({\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.shape({\n type: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.string.isRequired\n }).isRequired,\n properties: _propTypes2.default.object,\n type: _propTypes2.default.string.isRequired,\n controls: _propTypes2.default.array,\n columnHeaders: _propTypes2.default.arrayOf(_propTypes2.default.shape({\n id: _propTypes2.default.string,\n translationKey: _propTypes2.default.string,\n type: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.string.isRequired\n })).isRequired\n }),\n onEventTrigger: _propTypes2.default.func,\n onValueChanged: _propTypes2.default.func.isRequired,\n patientUuid: _propTypes2.default.string,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validateForm: _propTypes2.default.bool.isRequired\n};\n\nTable.defaultProps = {\n children: _immutable.List.of([]),\n enabled: true\n};\n\n_componentStore2.default.registerComponent('table', Table);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Table.jsx\n// module id = 293\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Table.jsx?");
|
||
|
||
/***/ }),
|
||
/* 294 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Image = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Spinner = __webpack_require__(295);\n\nvar _Spinner2 = _interopRequireDefault(_Spinner);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _Util = __webpack_require__(169);\n\nvar _Validator = __webpack_require__(229);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Image = exports.Image = function (_Component) {\n _inherits(Image, _Component);\n\n function Image(props) {\n _classCallCheck(this, Image);\n\n var _this = _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).call(this, props));\n\n var hasErrors = false;\n _this.state = { hasErrors: hasErrors, loading: false };\n _this.handleChange = _this.handleChange.bind(_this);\n _this.displayRestoreButton = _this.displayRestoreButton.bind(_this);\n _this.displayDeleteButton = _this.displayDeleteButton.bind(_this);\n return _this;\n }\n\n _createClass(Image, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n this.isValueChanged = this.props.value !== nextProps.value;\n if (this.props.enabled !== nextProps.enabled || this.isValueChanged || this.state.hasErrors !== nextState.hasErrors || this.state.loading !== nextState.loading) {\n return true;\n }\n return false;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.props.value);\n if (this._hasErrors(errors)) {\n this.props.onChange(this.props.value, errors);\n }\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n if (this._isCreateByAddMore()) {\n return [];\n }\n var validations = this.props.validations;\n var controlDetails = void 0;\n if (value && value.indexOf('voided') > 0) {\n controlDetails = { validations: validations, undefined: undefined };\n } else {\n controlDetails = { validations: validations, value: value };\n }\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: 'addControlWithNotification',\n value: function addControlWithNotification(isNotificationShown) {\n if (this.props.addMore && !this.hasBeenAddMore) {\n this.props.onControlAdd(this.props.formFieldPath, isNotificationShown);\n this.hasBeenAddMore = true;\n }\n }\n }, {\n key: 'update',\n value: function update(value) {\n var errors = this._getErrors(value);\n this.setState({ loading: false, hasErrors: this._hasErrors(errors) });\n this.props.onChange(value, errors);\n }\n }, {\n key: 'handleChange',\n value: function handleChange(e) {\n var _this2 = this;\n\n e.preventDefault();\n this.setState({ loading: true });\n if (e.target.files === undefined) {\n this.update(undefined);\n return;\n }\n var file = e.target.files[0];\n var reader = new FileReader();\n var fileType = _Util.Util.getFileType(file.type);\n if (fileType === 'not_supported') {\n this.update(undefined);\n this.props.showNotification(_constants2.default.errorMessage.fileTypeNotSupported, _constants2.default.messageType.error);\n return;\n }\n reader.onloadend = function (event) {\n _Util.Util.uploadFile(event.target.result, _this2.props.patientUuid, fileType).then(function (response) {\n return response.json();\n }).then(function (data) {\n _this2.update(data.url);\n });\n };\n reader.readAsDataURL(file);\n this.addControlWithNotification(true);\n }\n }, {\n key: 'handleDelete',\n value: function handleDelete() {\n this.update(this.props.value + 'voided');\n }\n }, {\n key: 'handleRestore',\n value: function handleRestore() {\n this.update(this.props.value.replace(/voided/g, ''));\n }\n }, {\n key: 'displayDeleteButton',\n value: function displayDeleteButton() {\n var _this3 = this;\n\n return _react2.default.createElement(\n 'button',\n { className: 'delete-button',\n onClick: function onClick(e) {\n return _this3.handleDelete(e);\n }\n },\n _react2.default.createElement('span', { className: 'fa fa-remove' })\n );\n }\n }, {\n key: 'displayRestoreButton',\n value: function displayRestoreButton() {\n var _this4 = this;\n\n return _react2.default.createElement(\n 'button',\n { className: 'restore-button',\n onClick: function onClick(e) {\n return _this4.handleRestore(e);\n }\n },\n _react2.default.createElement('span', { className: 'fa fa-undo' })\n );\n }\n }, {\n key: 'displayImage',\n value: function displayImage() {\n var _this5 = this;\n\n var preview = null;\n var isPreviewHidden = true;\n var deleteButton = null;\n var restoreButton = null;\n if (this.props.value) {\n isPreviewHidden = false;\n var imageUrl = void 0;\n if (this.props.value.indexOf('.pdf') > 0) {\n imageUrl = '../../../../bahmni/images/pdfIcon.png';\n } else {\n imageUrl = '/document_images/' + this.props.value.replace(/voided/g, '');\n }\n preview = _react2.default.createElement('img', { src: imageUrl });\n deleteButton = this.displayDeleteButton();\n if (this.props.value.indexOf('voided') > 0) {\n restoreButton = this.displayRestoreButton();\n }\n this.addControlWithNotification(false);\n }\n var id = 'file-browse-observation_' + this.props.formFieldPath.split('/')[1];\n var loading = this.state.loading === true;\n return _react2.default.createElement(\n 'div',\n { className: 'image-upload' },\n _react2.default.createElement(_Spinner2.default, { show: loading }),\n _react2.default.createElement('input', { accept: 'application/pdf, image/*',\n className: (0, _classnames2.default)({ 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n id: id,\n onChange: function onChange(e) {\n return _this5.handleChange(e);\n },\n type: 'file'\n }),\n _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)({ hidden: isPreviewHidden }, 'file') },\n preview,\n deleteButton,\n restoreButton\n ),\n _react2.default.createElement(\n 'label',\n { className: (0, _classnames2.default)({ hidden: !isPreviewHidden }, 'placeholder'), htmlFor: id },\n _react2.default.createElement('i', { className: 'fa fa-cloud-upload' })\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n return this.displayImage();\n }\n }]);\n\n return Image;\n}(_react.Component);\n\nImage.propTypes = {\n addMore: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n onControlAdd: _propTypes2.default.func.isRequired,\n patientUuid: _propTypes2.default.string,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\nImage.defaultProps = {\n enabled: true\n};\n\n_componentStore2.default.registerComponent('ImageUrlHandler', Image);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Image.jsx\n// module id = 294\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Image.jsx?");
|
||
|
||
/***/ }),
|
||
/* 295 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Spinner = function Spinner(props) {\n if (props.show) {\n return _react2.default.createElement('div', { className: 'overlay' });\n }\n return null;\n};\n\nSpinner.propTypes = {\n show: _propTypes2.default.bool.isRequired\n};\n\nexports.default = Spinner;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Spinner.js\n// module id = 295\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/Spinner.js?");
|
||
|
||
/***/ }),
|
||
/* 296 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Video = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Spinner = __webpack_require__(295);\n\nvar _Spinner2 = _interopRequireDefault(_Spinner);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _Util = __webpack_require__(169);\n\nvar _Validator = __webpack_require__(229);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Video = exports.Video = function (_Component) {\n _inherits(Video, _Component);\n\n function Video(props) {\n _classCallCheck(this, Video);\n\n var _this = _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).call(this, props));\n\n var hasErrors = false;\n _this.state = { hasErrors: hasErrors, loading: false };\n _this.handleChange = _this.handleChange.bind(_this);\n _this.displayRestoreButton = _this.displayRestoreButton.bind(_this);\n _this.displayDeleteButton = _this.displayDeleteButton.bind(_this);\n return _this;\n }\n\n _createClass(Video, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n this.isValueChanged = this.props.value !== nextProps.value;\n if (this.props.enabled !== nextProps.enabled || this.isValueChanged || this.state.hasErrors !== nextState.hasErrors || this.state.loading !== nextState.loading) {\n return true;\n }\n return false;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var errors = this._getErrors(this.props.value);\n if (this._hasErrors(errors)) {\n this.props.onChange(this.props.value, errors);\n }\n }\n }, {\n key: '_getErrors',\n value: function _getErrors(value) {\n if (this._isCreateByAddMore()) {\n return [];\n }\n var validations = this.props.validations;\n var controlDetails = void 0;\n if (value && value.indexOf('voided') > 0) {\n controlDetails = { validations: validations, undefined: undefined };\n } else {\n controlDetails = { validations: validations, value: value };\n }\n return _Validator.Validator.getErrors(controlDetails);\n }\n }, {\n key: '_hasErrors',\n value: function _hasErrors(errors) {\n return !(0, _isEmpty2.default)(errors);\n }\n }, {\n key: '_isCreateByAddMore',\n value: function _isCreateByAddMore() {\n return this.props.formFieldPath.split('-')[1] !== '0';\n }\n }, {\n key: 'addControlWithNotification',\n value: function addControlWithNotification(isNotificationShown) {\n if (this.props.addMore && !this.hasBeenAddMore) {\n this.props.onControlAdd(this.props.formFieldPath, isNotificationShown);\n this.hasBeenAddMore = true;\n }\n }\n }, {\n key: 'update',\n value: function update(value) {\n var errors = this._getErrors(value);\n this.setState({ loading: false, hasErrors: this._hasErrors(errors) });\n this.props.onChange(value, errors);\n }\n }, {\n key: 'handleChange',\n value: function handleChange(e) {\n var _this2 = this;\n\n e.preventDefault();\n this.setState({ loading: true });\n if (e.target.files === undefined) {\n this.update(undefined);\n return;\n }\n var file = e.target.files[0];\n var reader = new FileReader();\n var fileType = _Util.Util.getFileType(file.type);\n if (fileType === 'not_supported') {\n this.update(undefined);\n this.props.showNotification(_constants2.default.errorMessage.fileTypeNotSupported, _constants2.default.messageType.error);\n return;\n }\n reader.onloadend = function (event) {\n _Util.Util.uploadFile(event.target.result, _this2.props.patientUuid, fileType).then(function (response) {\n return response.json();\n }).then(function (data) {\n _this2.update(data.url);\n });\n };\n reader.readAsDataURL(file);\n this.addControlWithNotification(true);\n }\n }, {\n key: 'handleDelete',\n value: function handleDelete() {\n this.update(this.props.value + 'voided');\n }\n }, {\n key: 'handleRestore',\n value: function handleRestore() {\n this.update(this.props.value.replace(/voided/g, ''));\n }\n }, {\n key: 'displayDeleteButton',\n value: function displayDeleteButton() {\n var _this3 = this;\n\n return _react2.default.createElement(\n 'button',\n { className: 'delete-button',\n onClick: function onClick(e) {\n return _this3.handleDelete(e);\n }\n },\n _react2.default.createElement('span', { className: 'fa fa-remove' })\n );\n }\n }, {\n key: 'displayRestoreButton',\n value: function displayRestoreButton() {\n var _this4 = this;\n\n return _react2.default.createElement(\n 'button',\n { className: 'restore-button',\n onClick: function onClick(e) {\n return _this4.handleRestore(e);\n }\n },\n _react2.default.createElement('span', { className: 'fa fa-undo' })\n );\n }\n }, {\n key: 'displayVideo',\n value: function displayVideo() {\n var _this5 = this;\n\n var preview = null;\n var isPreviewHidden = true;\n var deleteButton = null;\n var restoreButton = null;\n if (this.props.value) {\n isPreviewHidden = false;\n var videoUrl = '/document_images/' + this.props.value.replace(/voided/g, '');\n var videoClassName = (0, _classnames2.default)('obs-video', { 'obs-disabled': this.props.value.indexOf('voided') > 0 });\n preview = _react2.default.createElement(\n 'video',\n { className: videoClassName, controls: true, preload: 'metadata' },\n _react2.default.createElement('source', { src: videoUrl }),\n 'Your browser does not support the video tag. '\n );\n if (this.props.value.indexOf('voided') > 0) {\n restoreButton = this.displayRestoreButton();\n } else {\n deleteButton = this.displayDeleteButton();\n }\n this.addControlWithNotification(false);\n }\n var id = 'file-browse-observation_' + this.props.formFieldPath.split('/')[1];\n var loading = this.state.loading === true;\n return _react2.default.createElement(\n 'div',\n { className: 'video-upload' },\n _react2.default.createElement(_Spinner2.default, { show: loading }),\n _react2.default.createElement('input', { accept: '.mkv,.flv,.ogg,video/*,audio/3gpp',\n className: (0, _classnames2.default)('file-browse', { 'form-builder-error': this.state.hasErrors }),\n disabled: !this.props.enabled,\n id: id,\n onChange: function onChange(e) {\n return _this5.handleChange(e);\n },\n type: 'file'\n }),\n _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)({ hidden: isPreviewHidden }, 'file') },\n preview,\n deleteButton,\n restoreButton\n ),\n _react2.default.createElement(\n 'label',\n {\n className: (0, _classnames2.default)({ hidden: !isPreviewHidden }, 'video-placeholder'),\n htmlFor: id\n },\n 'Upload Video'\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n return this.displayVideo();\n }\n }]);\n\n return Video;\n}(_react.Component);\n\nVideo.propTypes = {\n addMore: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n onControlAdd: _propTypes2.default.func.isRequired,\n patientUuid: _propTypes2.default.string,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\nVideo.defaultProps = {\n enabled: true\n};\n\n_componentStore2.default.registerComponent('VideoUrlHandler', Video);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Video.jsx\n// module id = 296\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Video.jsx?");
|
||
|
||
/***/ }),
|
||
/* 297 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Location = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _AutoComplete = __webpack_require__(236);\n\nvar _httpInterceptor = __webpack_require__(253);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Location = exports.Location = function (_Component) {\n _inherits(Location, _Component);\n\n function Location(props) {\n _classCallCheck(this, Location);\n\n var _this = _possibleConstructorReturn(this, (Location.__proto__ || Object.getPrototypeOf(Location)).call(this, props));\n\n _this.state = { locationData: [] };\n _this.onValueChange = _this.onValueChange.bind(_this);\n return _this;\n }\n\n _createClass(Location, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var properties = this.props.properties;\n\n var url = properties.URL || '/openmrs/ws/rest/v1/location?v=custom:(id,name,uuid)';\n _httpInterceptor.httpInterceptor.get(url).then(function (data) {\n return _this2.setState({ locationData: data.results });\n }).catch(function () {\n _this2.props.showNotification('Failed to fetch location data', _constants2.default.messageType.error);\n });\n }\n }, {\n key: 'onValueChange',\n value: function onValueChange(value, errors) {\n var updatedValue = value ? value.id : undefined;\n this.props.onChange(updatedValue, errors);\n }\n }, {\n key: '_getValue',\n value: function _getValue(val) {\n return (0, _find2.default)(this.state.locationData, function (location) {\n return location.id === val;\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var value = this.props.value ? this._getValue(parseInt(this.props.value, 10)) : undefined;\n var properties = this.props.properties;\n\n var isSearchable = properties.style === 'autocomplete';\n var minimumInput = isSearchable ? 2 : 0;\n return _react2.default.createElement(_AutoComplete.AutoComplete, _extends({}, this.props, {\n asynchronous: false,\n minimumInput: minimumInput,\n onValueChange: this.onValueChange,\n options: this.state.locationData,\n searchable: isSearchable,\n value: value\n }));\n }\n }]);\n\n return Location;\n}(_react.Component);\n\nLocation.propTypes = {\n addMore: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n properties: _propTypes2.default.object.isRequired,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\nLocation.defaultProps = {\n autofocus: false,\n enabled: true,\n labelKey: 'name',\n valueKey: 'id',\n searchable: false\n};\n\n_componentStore2.default.registerComponent('LocationObsHandler', Location);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Location.jsx\n// module id = 297\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Location.jsx?");
|
||
|
||
/***/ }),
|
||
/* 298 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Provider = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _AutoComplete = __webpack_require__(236);\n\nvar _httpInterceptor = __webpack_require__(253);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Provider = exports.Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider(props) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).call(this, props));\n\n _this.state = { providerData: [] };\n _this.onValueChange = _this.onValueChange.bind(_this);\n return _this;\n }\n\n _createClass(Provider, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var properties = this.props.properties;\n\n var url = properties.URL || '/openmrs/ws/rest/v1/provider?v=custom:(id,name,uuid)';\n _httpInterceptor.httpInterceptor.get(url).then(function (data) {\n return _this2.setState({ providerData: data.results });\n }).catch(function () {\n _this2.props.showNotification('Failed to fetch provider data', _constants2.default.messageType.error);\n });\n }\n }, {\n key: 'onValueChange',\n value: function onValueChange(value, errors) {\n var updatedValue = value ? value.id : undefined;\n this.props.onChange(updatedValue, errors);\n }\n }, {\n key: '_getValue',\n value: function _getValue(val) {\n return (0, _find2.default)(this.state.providerData, function (provider) {\n return provider.id === val;\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var value = this.props.value ? this._getValue(parseInt(this.props.value, 10)) : undefined;\n var properties = this.props.properties;\n\n var isSearchable = properties.style === 'autocomplete';\n var minimumInput = isSearchable ? 2 : 0;\n return _react2.default.createElement(_AutoComplete.AutoComplete, _extends({}, this.props, {\n asynchronous: false,\n minimumInput: minimumInput,\n onValueChange: this.onValueChange,\n options: this.state.providerData,\n searchable: isSearchable,\n value: value\n }));\n }\n }]);\n\n return Provider;\n}(_react.Component);\n\nProvider.propTypes = {\n addMore: _propTypes2.default.bool,\n enabled: _propTypes2.default.bool,\n formFieldPath: _propTypes2.default.string,\n onChange: _propTypes2.default.func.isRequired,\n properties: _propTypes2.default.object.isRequired,\n showNotification: _propTypes2.default.func.isRequired,\n validate: _propTypes2.default.bool.isRequired,\n validations: _propTypes2.default.array.isRequired,\n value: _propTypes2.default.string\n};\n\nProvider.defaultProps = {\n autofocus: false,\n enabled: true,\n labelKey: 'name',\n valueKey: 'id',\n searchable: false\n};\n\n_componentStore2.default.registerComponent('ProviderObsHandler', Provider);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Provider.jsx\n// module id = 298\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Provider.jsx?");
|
||
|
||
/***/ }),
|
||
/* 299 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FreeTextAutoComplete = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSelect = __webpack_require__(237);\n\nvar _reactSelect2 = _interopRequireDefault(_reactSelect);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FreeTextAutoComplete = exports.FreeTextAutoComplete = function (_Component) {\n _inherits(FreeTextAutoComplete, _Component);\n\n function FreeTextAutoComplete(props) {\n _classCallCheck(this, FreeTextAutoComplete);\n\n var _this = _possibleConstructorReturn(this, (FreeTextAutoComplete.__proto__ || Object.getPrototypeOf(FreeTextAutoComplete)).call(this, props));\n\n var options = props.options,\n value = props.value;\n\n _this.state = { options: options, value: value };\n _this.handleOnChange = _this.handleOnChange.bind(_this);\n return _this;\n }\n\n _createClass(FreeTextAutoComplete, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(newProps) {\n if (this.props.options !== newProps.options) {\n this.setState({ options: newProps.options, value: newProps.value });\n }\n }\n }, {\n key: 'handleOnChange',\n value: function handleOnChange(value) {\n this.setState({ value: value });\n var _props = this.props,\n type = _props.type,\n translationKey = _props.translationKey,\n locale = _props.locale;\n\n this.props.onChange(value, type, translationKey, locale);\n }\n }, {\n key: 'render',\n value: function render() {\n var _state = this.state,\n options = _state.options,\n value = _state.value;\n var _props2 = this.props,\n multi = _props2.multi,\n clearable = _props2.clearable,\n backspaceRemoves = _props2.backspaceRemoves,\n deleteRemoves = _props2.deleteRemoves;\n\n return _react2.default.createElement(_reactSelect2.default.Creatable, {\n backspaceRemoves: backspaceRemoves,\n clearable: clearable,\n deleteRemoves: deleteRemoves,\n multi: multi,\n onChange: this.handleOnChange,\n options: options,\n value: value\n });\n }\n }]);\n\n return FreeTextAutoComplete;\n}(_react.Component);\n\nFreeTextAutoComplete.propTypes = {\n backspaceRemoves: _propTypes2.default.bool.isRequired,\n clearable: _propTypes2.default.bool.isRequired,\n deleteRemoves: _propTypes2.default.bool.isRequired,\n locale: _propTypes2.default.string,\n multi: _propTypes2.default.bool.isRequired,\n onChange: _propTypes2.default.func.isRequired,\n options: _propTypes2.default.array.isRequired,\n translationKey: _propTypes2.default.string,\n type: _propTypes2.default.string,\n value: _propTypes2.default.string\n};\n\nFreeTextAutoComplete.defaultProps = {\n multi: false,\n clearable: false,\n backspaceRemoves: false,\n deleteRemoves: false\n};\n\n_componentStore2.default.registerComponent('freeTextAutoComplete', FreeTextAutoComplete);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/FreeTextAutoComplete.jsx\n// module id = 299\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/FreeTextAutoComplete.jsx?");
|
||
|
||
/***/ }),
|
||
/* 300 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LabelDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _TranslationKeyService = __webpack_require__(301);\n\nvar _TranslationKeyService2 = _interopRequireDefault(_TranslationKeyService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LabelDesigner = exports.LabelDesigner = function (_Component) {\n _inherits(LabelDesigner, _Component);\n\n function LabelDesigner(props) {\n _classCallCheck(this, LabelDesigner);\n\n var _this = _possibleConstructorReturn(this, (LabelDesigner.__proto__ || Object.getPrototypeOf(LabelDesigner)).call(this, props));\n\n var metadata = props.metadata,\n _props$metadata = props.metadata,\n id = _props$metadata.id,\n value = _props$metadata.value;\n\n var translationKey = metadata.translationKey || new _TranslationKeyService2.default(value, id).build();\n _this.state = { value: value, translationKey: translationKey };\n _this.onDoubleClick = _this.onDoubleClick.bind(_this);\n _this.onBlur = _this.onBlur.bind(_this);\n _this.showDeleteButton = _this.showDeleteButton.bind(_this);\n _this.onEnterKey = _this.onEnterKey.bind(_this);\n _this.storeComponentRef = _this.storeComponentRef.bind(_this);\n _this.getJsonDefinition = _this.getJsonDefinition.bind(_this);\n return _this;\n }\n\n _createClass(LabelDesigner, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.input) {\n this.input.focus();\n this.input.select();\n }\n }\n }, {\n key: 'onDoubleClick',\n value: function onDoubleClick() {\n this.setState({ isEditable: true });\n }\n }, {\n key: 'onBlur',\n value: function onBlur() {\n this.updateValue();\n }\n }, {\n key: 'onEnterKey',\n value: function onEnterKey(e) {\n if (e.keyCode === 13) {\n this.updateValue();\n }\n }\n }, {\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n var metadata = this.props.metadata;\n var _state = this.state,\n value = _state.value,\n translationKey = _state.translationKey;\n\n return Object.assign({}, { translationKey: translationKey }, metadata, { value: value });\n }\n }, {\n key: 'updateValue',\n value: function updateValue() {\n var updatedValue = this.input && this.input.value ? this.input.value.trim() : undefined;\n var value = updatedValue || this.state.value;\n this.setState({\n isEditable: false,\n value: value\n });\n }\n }, {\n key: '_getLabelValue',\n value: function _getLabelValue() {\n var value = this.state.value;\n var units = this.props.metadata.units;\n\n return units ? value + ' ' + units : value;\n }\n }, {\n key: 'storeComponentRef',\n value: function storeComponentRef(ref) {\n if (ref !== null) this.input = ref;\n }\n }, {\n key: 'showDeleteButton',\n value: function showDeleteButton() {\n if (this.props.deleteControl && this.props.showDeleteButton) {\n return _react2.default.createElement(\n 'button',\n { className: 'remove-control-button', onClick: this.props.deleteControl },\n _react2.default.createElement('i', { 'aria-hidden': 'true', className: 'fa fa-trash' })\n );\n }\n return null;\n }\n }, {\n key: 'stopEventPropagation',\n value: function stopEventPropagation(event) {\n if (this.props.dispatch) {\n this.props.dispatch();\n event.stopPropagation();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n if (this.state.isEditable) {\n return _react2.default.createElement('input', {\n className: 'form-builder-label', defaultValue: this.state.value,\n onBlur: this.onBlur, onKeyUp: this.onEnterKey,\n ref: this.storeComponentRef,\n type: 'text'\n });\n }\n return _react2.default.createElement(\n 'div',\n { className: 'control-wrapper-content', onClick: function onClick(e) {\n return _this2.stopEventPropagation(e);\n } },\n _react2.default.createElement(\n 'label',\n {\n onDoubleClick: this.onDoubleClick\n },\n this._getLabelValue()\n ),\n this.showDeleteButton()\n );\n }\n }]);\n\n return LabelDesigner;\n}(_react.Component);\n\nLabelDesigner.injectConceptToMetadata = function (metadata) {\n return metadata;\n};\n\nLabelDesigner.propTypes = {\n clearSelectedControl: _propTypes2.default.func,\n deleteControl: _propTypes2.default.func,\n dispatch: _propTypes2.default.func,\n metadata: _propTypes2.default.shape({\n id: _propTypes2.default.string,\n translationKey: _propTypes2.default.string,\n type: _propTypes2.default.string.isRequired,\n units: _propTypes2.default.string,\n value: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.shape({\n location: _propTypes2.default.shape({\n row: _propTypes2.default.number,\n column: _propTypes2.default.number\n })\n })\n }),\n showDeleteButton: _propTypes2.default.bool.isRequired\n};\n\nvar descriptor = {\n control: LabelDesigner,\n designProperties: {\n isTopLevelComponent: true,\n displayName: 'Label'\n },\n metadata: {\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'label'\n }, {\n name: 'value',\n dataType: 'text',\n defaultValue: 'Label'\n }, {\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('label', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Label.jsx\n// module id = 300\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Label.jsx?");
|
||
|
||
/***/ }),
|
||
/* 301 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TranslationKeyGenerator = function () {\n function TranslationKeyGenerator(value) {\n var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, TranslationKeyGenerator);\n\n this.value = value;\n this.id = id;\n }\n\n _createClass(TranslationKeyGenerator, [{\n key: 'build',\n value: function build() {\n var formatted = this.value.toUpperCase().replace(/ /g, '_');\n return formatted + '_' + this.id.toString();\n }\n }]);\n\n return TranslationKeyGenerator;\n}();\n\nexports.default = TranslationKeyGenerator;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/services/TranslationKeyService.js\n// module id = 301\n// module chunks = 0\n//# sourceURL=webpack:///./src/services/TranslationKeyService.js?");
|
||
|
||
/***/ }),
|
||
/* 302 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsControlDesigner = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Label = __webpack_require__(300);\n\nvar _Comment = __webpack_require__(303);\n\nvar _AddMore = __webpack_require__(304);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _get = __webpack_require__(111);\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _Concept = __webpack_require__(305);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ObsControlDesigner = exports.ObsControlDesigner = function (_Component) {\n _inherits(ObsControlDesigner, _Component);\n\n function ObsControlDesigner(props) {\n _classCallCheck(this, ObsControlDesigner);\n\n var _this = _possibleConstructorReturn(this, (ObsControlDesigner.__proto__ || Object.getPrototypeOf(ObsControlDesigner)).call(this, props));\n\n _this.metadata = props.metadata;\n _this.storeChildRef = _this.storeChildRef.bind(_this);\n _this.storeLabelRef = _this.storeLabelRef.bind(_this);\n _this.deleteButton = _this.deleteButton.bind(_this);\n return _this;\n }\n\n _createClass(ObsControlDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n if (!this.childControl) {\n return undefined;\n }\n var childJsonDefinition = this.childControl.getJsonDefinition();\n var description = childJsonDefinition.concept.description;\n\n var labelJsonDefinition = this.labelControl && this.labelControl.getJsonDefinition();\n if (description && !description.translationKey) {\n description.translationKey = labelJsonDefinition.translationKey + '_DESC';\n }\n return Object.assign({}, childJsonDefinition, { label: labelJsonDefinition });\n }\n }, {\n key: 'storeChildRef',\n value: function storeChildRef(ref) {\n this.childControl = ref;\n }\n }, {\n key: 'storeLabelRef',\n value: function storeLabelRef(ref) {\n this.labelControl = ref;\n }\n }, {\n key: 'displayObsControl',\n value: function displayObsControl(designerComponent) {\n var _props = this.props,\n metadata = _props.metadata,\n setError = _props.setError;\n\n return _react2.default.createElement(designerComponent.control, _extends({\n metadata: metadata,\n ref: this.storeChildRef,\n setError: setError\n }, this._numericContext(metadata)));\n }\n }, {\n key: '_numericContext',\n value: function _numericContext(metadata) {\n return {\n units: metadata.units,\n hiNormal: metadata.hiNormal,\n lowNormal: metadata.lowNormal,\n hiAbsolute: metadata.hiAbsolute,\n lowAbsolute: metadata.lowAbsolute\n };\n }\n }, {\n key: '_getUnits',\n value: function _getUnits(units) {\n return units ? '(' + units + ')' : '';\n }\n }, {\n key: 'displayLabel',\n value: function displayLabel() {\n var _this2 = this;\n\n var _props2 = this.props,\n metadata = _props2.metadata,\n _props2$metadata = _props2.metadata,\n properties = _props2$metadata.properties,\n label = _props2$metadata.label,\n id = _props2$metadata.id;\n\n var hideLabel = (0, _find2.default)(properties, function (value, key) {\n return key === 'hideLabel' && value;\n });\n var units = this._getUnits(metadata.units);\n var labelMetadata = Object.assign({ id: id, units: units }, label) || { type: 'label', value: metadata.concept.name, id: id };\n if (!hideLabel) {\n return _react2.default.createElement(_Label.LabelDesigner, {\n metadata: labelMetadata,\n onSelect: function onSelect(event) {\n return _this2.props.onSelect(event, metadata);\n },\n ref: this.storeLabelRef,\n showDeleteButton: false\n });\n }\n return null;\n }\n }, {\n key: 'markMandatory',\n value: function markMandatory() {\n var properties = this.props.metadata.properties;\n\n var isMandatory = (0, _find2.default)(properties, function (value, key) {\n return key === 'mandatory' && value;\n });\n if (isMandatory) {\n return _react2.default.createElement(\n 'span',\n { className: 'form-builder-asterisk' },\n '*'\n );\n }\n return null;\n }\n }, {\n key: 'showHelperText',\n value: function showHelperText() {\n var _this3 = this;\n\n var description = this.props.metadata.concept.description;\n\n var showHintButton = this.state && this.state.showHintButton;\n if (description && description.value) {\n return _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('form-builder-tooltip-wrap', { active: showHintButton === true }) },\n _react2.default.createElement('i', { className: 'fa fa-question-circle form-builder-tooltip-trigger',\n onClick: function onClick() {\n return _this3.setState({ showHintButton: !showHintButton });\n }\n }),\n _react2.default.createElement(\n 'p',\n { className: 'form-builder-tooltip-description' },\n _react2.default.createElement('i', { className: 'fa fa-caret-down' }),\n _react2.default.createElement(\n 'span',\n { className: 'details hint' },\n description.value\n )\n )\n );\n }\n return null;\n }\n }, {\n key: 'showComment',\n value: function showComment() {\n var properties = this.props.metadata.properties;\n\n var isAddCommentsEnabled = (0, _find2.default)(properties, function (value, key) {\n return key === 'notes' && value;\n });\n if (isAddCommentsEnabled) {\n return _react2.default.createElement(_Comment.CommentDesigner, null);\n }\n return null;\n }\n }, {\n key: 'showAddMore',\n value: function showAddMore() {\n var properties = this.props.metadata.properties;\n\n var isAddMoreEnabled = (0, _find2.default)(properties, function (value, key) {\n return key === 'addMore' && value;\n });\n if (isAddMoreEnabled) {\n return _react2.default.createElement(_AddMore.AddMoreDesigner, null);\n }\n return null;\n }\n }, {\n key: 'deleteButton',\n value: function deleteButton(event) {\n this.props.deleteControl();\n this.props.clearSelectedControl(event);\n }\n }, {\n key: 'showDeleteButton',\n value: function showDeleteButton() {\n if (this.props.showDeleteButton) {\n return _react2.default.createElement(\n 'button',\n { className: 'remove-control-button', onClick: this.deleteButton },\n _react2.default.createElement('i', { 'aria-hidden': 'true', className: 'fa fa-trash' })\n );\n }\n return null;\n }\n }, {\n key: 'showScriptButton',\n value: function showScriptButton() {\n var scripts = this.props.metadata.events;\n if (scripts && scripts.onValueChange && scripts.onValueChange !== '') {\n return _react2.default.createElement('i', { 'aria-hidden': 'true', className: 'fa fa-code script-circle' });\n }\n return null;\n }\n }, {\n key: 'showAbnormalButton',\n value: function showAbnormalButton() {\n var properties = this.props.metadata.properties;\n\n var isAbnormal = (0, _find2.default)(properties, function (value, key) {\n return key === 'abnormal' && value;\n });\n if (isAbnormal) {\n return _react2.default.createElement(\n 'button',\n { className: 'abnormal-button' },\n _react2.default.createElement(\n 'span',\n null,\n 'Abnormal'\n )\n );\n }\n return null;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props3 = this.props,\n metadata = _props3.metadata,\n concept = _props3.metadata.concept;\n\n var designerComponent = concept && _componentStore2.default.getDesignerComponent(concept.datatype);\n if (designerComponent) {\n return _react2.default.createElement(\n 'div',\n { className: 'form-field-wrap clearfix',\n onClick: function onClick(event) {\n return _this4.props.onSelect(event, metadata);\n }\n },\n _react2.default.createElement(\n 'div',\n { className: 'form-field-content-wrap' },\n this.showDeleteButton(),\n this.showScriptButton(),\n _react2.default.createElement(\n 'div',\n { className: 'label-wrap fl' },\n this.displayLabel(),\n this.markMandatory(),\n this.showHelperText()\n ),\n _react2.default.createElement(\n 'div',\n { className: (0, _classnames2.default)('obs-control-field') },\n this.displayObsControl(designerComponent),\n this.showAbnormalButton(),\n this.showAddMore()\n )\n ),\n this.showComment()\n );\n }\n return _react2.default.createElement(\n 'div',\n { className: 'control-wrapper-content',\n onClick: function onClick(event) {\n return _this4.props.onSelect(event, metadata);\n }\n },\n this.showDeleteButton(),\n 'Select Obs Source'\n );\n }\n }]);\n\n return ObsControlDesigner;\n}(_react.Component);\n\nObsControlDesigner.propTypes = {\n clearSelectedControl: _propTypes2.default.func.isRequired,\n deleteControl: _propTypes2.default.func.isRequired,\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object,\n displayType: _propTypes2.default.string,\n events: _propTypes2.default.object,\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.object,\n properties: _propTypes2.default.shape({\n location: _propTypes2.default.shape({\n row: _propTypes2.default.number,\n column: _propTypes2.default.number\n })\n }),\n type: _propTypes2.default.string.isRequired\n }),\n onSelect: _propTypes2.default.func.isRequired,\n setError: _propTypes2.default.func,\n showDeleteButton: _propTypes2.default.bool\n};\n\nObsControlDesigner.injectConceptToMetadata = function (metadata, concept) {\n var filteredConcepts = {\n name: concept.name.name,\n uuid: concept.uuid,\n description: !(0, _isEmpty2.default)(concept.descriptions) ? { value: (0, _get2.default)(concept, 'descriptions[0].display') } : undefined,\n datatype: concept.datatype.name,\n conceptClass: concept.conceptClass.name,\n conceptHandler: concept.handler,\n answers: concept.answers,\n properties: {\n allowDecimal: concept.allowDecimal\n }\n };\n var label = {\n type: 'label',\n value: concept.name.name\n };\n\n return Object.assign({}, metadata, { concept: filteredConcepts }, { label: label }, _extends({}, new _Concept.Concept(concept).getNumericContext()));\n};\n\nvar descriptor = {\n control: ObsControlDesigner,\n designProperties: {\n displayName: 'Obs',\n isTopLevelComponent: true\n },\n metadata: {\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'obsControl'\n }, {\n name: 'label',\n dataType: 'complex',\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'label'\n }, {\n name: 'value',\n dataType: 'text',\n defaultValue: 'Label'\n }]\n }, {\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'mandatory',\n dataType: 'boolean',\n defaultValue: false\n }, {\n name: 'notes',\n dataType: 'boolean',\n defaultValue: false\n }, {\n name: 'addMore',\n dataType: 'boolean',\n defaultValue: false\n }, {\n name: 'hideLabel',\n dataType: 'boolean',\n defaultValue: false\n }, {\n name: 'controlEvent',\n dataType: 'boolean',\n defaultValue: false,\n elementType: 'button',\n elementName: 'Editor'\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('obsControl', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/ObsControlDesigner.jsx\n// module id = 302\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/ObsControlDesigner.jsx?");
|
||
|
||
/***/ }),
|
||
/* 303 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CommentDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactTextareaAutosize = __webpack_require__(224);\n\nvar _reactTextareaAutosize2 = _interopRequireDefault(_reactTextareaAutosize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CommentDesigner = exports.CommentDesigner = function (_PureComponent) {\n _inherits(CommentDesigner, _PureComponent);\n\n // PureComponent has been added because of eslint post test prefer-stateless-function error.\n\n function CommentDesigner() {\n _classCallCheck(this, CommentDesigner);\n\n var _this = _possibleConstructorReturn(this, (CommentDesigner.__proto__ || Object.getPrototypeOf(CommentDesigner)).call(this));\n\n _this.state = { showCommentSection: false };\n return _this;\n }\n\n _createClass(CommentDesigner, [{\n key: 'showCommentSection',\n value: function showCommentSection() {\n if (this.state.showCommentSection) {\n return _react2.default.createElement(\n 'div',\n { className: 'obs-comment-section-wrap' },\n _react2.default.createElement('div', { className: 'label-wrap' }),\n _react2.default.createElement(_reactTextareaAutosize2.default, {\n className: 'obs-comment-section fl',\n placeholder: 'Notes'\n })\n );\n }\n return null;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-comment-wrap' },\n _react2.default.createElement(\n 'button',\n {\n className: (0, _classnames2.default)('form-builder-comment-toggle', { active: this.state.showCommentSection === true }),\n onClick: function onClick() {\n return _this2.setState({\n showCommentSection: !_this2.state.showCommentSection\n });\n }\n },\n _react2.default.createElement(\n 'i',\n { className: 'fa fa-file-o' },\n _react2.default.createElement('i', { className: 'fa fa-plus-circle' }),\n _react2.default.createElement('i', { className: 'fa fa-minus-circle' })\n )\n ),\n this.showCommentSection()\n );\n }\n }]);\n\n return CommentDesigner;\n}(_react.PureComponent);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Comment.jsx\n// module id = 303\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Comment.jsx?");
|
||
|
||
/***/ }),
|
||
/* 304 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AddMoreDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AddMoreDesigner = exports.AddMoreDesigner = function (_PureComponent) {\n _inherits(AddMoreDesigner, _PureComponent);\n\n function AddMoreDesigner() {\n _classCallCheck(this, AddMoreDesigner);\n\n return _possibleConstructorReturn(this, (AddMoreDesigner.__proto__ || Object.getPrototypeOf(AddMoreDesigner)).apply(this, arguments));\n }\n\n _createClass(AddMoreDesigner, [{\n key: \"render\",\n value: function render() {\n return _react2.default.createElement(\n \"div\",\n { className: \"form-builder-clone\" },\n _react2.default.createElement(\n \"button\",\n { className: \"form-builder-add-more\" },\n _react2.default.createElement(\"i\", { className: \"fa fa-plus\" })\n ),\n _react2.default.createElement(\n \"button\",\n { className: \"form-builder-remove\" },\n _react2.default.createElement(\"i\", { className: \"fa fa-remove\" })\n )\n );\n }\n }]);\n\n return AddMoreDesigner;\n}(_react.PureComponent);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/AddMore.jsx\n// module id = 304\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/AddMore.jsx?");
|
||
|
||
/***/ }),
|
||
/* 305 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Concept = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _get = __webpack_require__(111);\n\nvar _get2 = _interopRequireDefault(_get);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Concept = exports.Concept = function () {\n function Concept(concept) {\n _classCallCheck(this, Concept);\n\n this.concept = concept;\n }\n\n _createClass(Concept, [{\n key: 'getAbnormalSetMember',\n value: function getAbnormalSetMember() {\n if (this.concept && this.concept.set) {\n var abnormalConcept = this.concept.setMembers.find(function (c) {\n return c.conceptClass.name === 'Abnormal';\n });\n return this._getConcept(abnormalConcept);\n }\n return undefined;\n }\n }, {\n key: 'findFirstNumericSetMember',\n value: function findFirstNumericSetMember() {\n if (this.concept && this.concept.set) {\n var numericConcept = this.concept.setMembers.find(function (c) {\n return c.datatype.name === 'Numeric';\n });\n return this._getConcept(numericConcept);\n }\n return undefined;\n }\n }, {\n key: 'getConcept',\n value: function getConcept() {\n return this._getConcept(this.concept);\n }\n }, {\n key: '_getSetMembers',\n value: function _getSetMembers(concept) {\n var _this = this;\n\n if (concept && concept.set) {\n return concept.setMembers.map(function (c) {\n return _this._getConcept(c);\n });\n }\n return undefined;\n }\n }, {\n key: '_getConcept',\n value: function _getConcept(concept) {\n return Object.assign({}, {\n name: concept.name.name,\n uuid: concept.uuid,\n datatype: concept.datatype.name,\n conceptClass: concept.conceptClass.name,\n conceptHandler: concept.handler\n }, this._getConceptProperties(concept));\n }\n }, {\n key: '_getConceptProperties',\n value: function _getConceptProperties(concept) {\n if (concept.set) {\n return {\n set: concept.set,\n setMembers: this._getSetMembers(concept)\n };\n }\n return {\n description: !(0, _isEmpty2.default)(concept.descriptions) ? { value: (0, _get2.default)(concept, 'descriptions[0].display') } : undefined,\n units: concept.units,\n hiNormal: concept.hiNormal,\n lowNormal: concept.lowNormal,\n hiAbsolute: concept.hiAbsolute,\n lowAbsolute: concept.lowAbsolute,\n answers: concept.answers,\n properties: {\n allowDecimal: concept.allowDecimal\n }\n };\n }\n }, {\n key: 'getNumericContext',\n value: function getNumericContext() {\n return {\n units: this.concept.units,\n hiNormal: this.concept.hiNormal,\n lowNormal: this.concept.lowNormal,\n hiAbsolute: this.concept.hiAbsolute,\n lowAbsolute: this.concept.lowAbsolute\n };\n }\n }]);\n\n return Concept;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Concept.js\n// module id = 305\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/Concept.js?");
|
||
|
||
/***/ }),
|
||
/* 306 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TextBoxDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _reactTextareaAutosize = __webpack_require__(224);\n\nvar _reactTextareaAutosize2 = _interopRequireDefault(_reactTextareaAutosize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBoxDesigner = exports.TextBoxDesigner = function (_Component) {\n _inherits(TextBoxDesigner, _Component);\n\n function TextBoxDesigner() {\n _classCallCheck(this, TextBoxDesigner);\n\n return _possibleConstructorReturn(this, (TextBoxDesigner.__proto__ || Object.getPrototypeOf(TextBoxDesigner)).apply(this, arguments));\n }\n\n _createClass(TextBoxDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.metadata;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'obs-comment-section-wrap' },\n _react2.default.createElement(_reactTextareaAutosize2.default, null)\n );\n }\n }]);\n\n return TextBoxDesigner;\n}(_react.Component);\n\nTextBoxDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nvar descriptor = {\n control: TextBoxDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('text', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/TextBoxDesigner.jsx\n// module id = 306\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/TextBoxDesigner.jsx?");
|
||
|
||
/***/ }),
|
||
/* 307 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ComplexControlDesigner = undefined;\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ComplexControlDesigner = exports.ComplexControlDesigner = function (_Component) {\n _inherits(ComplexControlDesigner, _Component);\n\n function ComplexControlDesigner() {\n _classCallCheck(this, ComplexControlDesigner);\n\n return _possibleConstructorReturn(this, (ComplexControlDesigner.__proto__ || Object.getPrototypeOf(ComplexControlDesigner)).apply(this, arguments));\n }\n\n _createClass(ComplexControlDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.metadata;\n }\n }, {\n key: 'render',\n value: function render() {\n var conceptHandler = this.props.metadata.concept.conceptHandler;\n\n var registeredComponent = _componentStore2.default.getDesignerComponent(conceptHandler);\n if (registeredComponent) {\n return _react2.default.createElement(registeredComponent.control, _extends({}, this.props));\n }\n return null;\n }\n }]);\n\n return ComplexControlDesigner;\n}(_react.Component);\n\nComplexControlDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n }),\n setError: _propTypes2.default.func\n};\n\nvar descriptor = {\n control: ComplexControlDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'mandatory',\n dataType: 'boolean',\n defaultValue: false,\n disabled: true\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('Complex', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/ComplexControlDesigner.jsx\n// module id = 307\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/ComplexControlDesigner.jsx?");
|
||
|
||
/***/ }),
|
||
/* 308 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GridDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Row = __webpack_require__(309);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _maxBy = __webpack_require__(312);\n\nvar _maxBy2 = _interopRequireDefault(_maxBy);\n\nvar _groupBy = __webpack_require__(143);\n\nvar _groupBy2 = _interopRequireDefault(_groupBy);\n\nvar _get = __webpack_require__(111);\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Cell = __webpack_require__(310);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GridDesigner = exports.GridDesigner = function (_Component) {\n _inherits(GridDesigner, _Component);\n\n function GridDesigner(props) {\n _classCallCheck(this, GridDesigner);\n\n var _this = _possibleConstructorReturn(this, (GridDesigner.__proto__ || Object.getPrototypeOf(GridDesigner)).call(this, props));\n\n _this.rowData = (0, _groupBy2.default)(props.controls, 'properties.location.row');\n _this.state = { rowCount: _this._getRowCount() };\n _this.changeHandler = _this.changeHandler.bind(_this);\n _this.rowReference = _this.rowReference.bind(_this);\n _this.rowRef = {};\n return _this;\n }\n\n _createClass(GridDesigner, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.rowData = (0, _groupBy2.default)(nextProps.controls, 'properties.location.row');\n }\n }, {\n key: 'getControls',\n value: function getControls() {\n var _ref;\n\n var controls = (0, _map2.default)(this.rowRef, function (ref) {\n return ref.getRowDefinition();\n }) || [];\n return (_ref = []).concat.apply(_ref, _toConsumableArray(controls));\n }\n }, {\n key: '_getRowCount',\n value: function _getRowCount() {\n var maxRow = (0, _maxBy2.default)(this.props.controls, function (control) {\n return control.properties.location.row;\n });\n if (maxRow) return Math.max(maxRow.properties.location.row + 2, this.props.minRows);\n return this.props.minRows;\n }\n }, {\n key: 'changeHandler',\n value: function changeHandler(value) {\n if (value === this.state.rowCount - 1) {\n this.setState({ rowCount: this.state.rowCount + 1 });\n }\n }\n }, {\n key: 'createRows',\n value: function createRows() {\n var rowCount = this.state.rowCount;\n\n var rows = [];\n for (var i = 0; i < rowCount; ++i) {\n rows.push(_react2.default.createElement(_Row.RowDesigner, {\n columns: this.props.minColumns,\n dragAllowed: this.props.dragAllowed,\n dragSourceCell: this.props.dragSourceCell,\n idGenerator: this.props.idGenerator,\n index: i,\n isBeingDragged: this.props.isBeingDragged,\n key: i,\n onChange: this.changeHandler,\n onControlDrop: this.props.onControlDrop,\n ref: this.rowReference,\n rowData: (0, _get2.default)(this.rowData, i, []),\n rowPosition: i,\n setError: this.props.setError,\n showDeleteButton: this.props.showDeleteButton,\n wrapper: this.props.wrapper\n }));\n }\n return rows;\n }\n }, {\n key: 'rowReference',\n value: function rowReference(ref) {\n if (ref) {\n this.rowRef[ref.props.rowPosition] = ref;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'grid' },\n this.createRows()\n );\n }\n }]);\n\n return GridDesigner;\n}(_react.Component);\n\nGridDesigner.propTypes = {\n controls: _propTypes2.default.array.isRequired,\n dragAllowed: _propTypes2.default.bool,\n dragSourceCell: _propTypes2.default.instanceOf(_Cell.CellDesigner),\n idGenerator: _propTypes2.default.object.isRequired,\n isBeingDragged: _propTypes2.default.bool,\n minColumns: _propTypes2.default.number,\n minRows: _propTypes2.default.number,\n onControlDrop: _propTypes2.default.func,\n setError: _propTypes2.default.func,\n showDeleteButton: _propTypes2.default.bool,\n wrapper: _propTypes2.default.func.isRequired\n};\n\nGridDesigner.defaultProps = {\n minColumns: _constants2.default.Grid.minColumns,\n minRows: _constants2.default.Grid.minRows,\n unsupportedProperties: []\n};\n\nvar descriptor = {\n control: GridDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'rowCount',\n dataType: 'number'\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('grid', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Grid.jsx\n// module id = 308\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Grid.jsx?");
|
||
|
||
/***/ }),
|
||
/* 309 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RowDesigner = exports.rowWidth = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Cell = __webpack_require__(310);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _groupBy = __webpack_require__(143);\n\nvar _groupBy2 = _interopRequireDefault(_groupBy);\n\nvar _get = __webpack_require__(111);\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar rowWidth = exports.rowWidth = _constants2.default.Grid.defaultRowWidth;\n\nvar RowDesigner = exports.RowDesigner = function (_Component) {\n _inherits(RowDesigner, _Component);\n\n function RowDesigner(props) {\n _classCallCheck(this, RowDesigner);\n\n var _this = _possibleConstructorReturn(this, (RowDesigner.__proto__ || Object.getPrototypeOf(RowDesigner)).call(this, props));\n\n _this.changeHandler = _this.changeHandler.bind(_this);\n _this.cellReference = _this.cellReference.bind(_this);\n _this.cellRef = {};\n _this.cellData = (0, _groupBy2.default)(props.rowData, 'properties.location.column');\n return _this;\n }\n\n _createClass(RowDesigner, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.cellData = (0, _groupBy2.default)(nextProps.rowData, 'properties.location.column');\n }\n }, {\n key: 'getRowDefinition',\n value: function getRowDefinition() {\n var _ref;\n\n var cells = (0, _map2.default)(this.cellRef, function (ref) {\n return ref.getCellDefinition();\n }) || [];\n return (_ref = []).concat.apply(_ref, _toConsumableArray(cells));\n }\n }, {\n key: 'changeHandler',\n value: function changeHandler() {\n if (this.props.onChange) {\n this.props.onChange(this.props.rowPosition);\n }\n }\n }, {\n key: 'createCells',\n value: function createCells() {\n var columns = this.props.columns;\n\n var cells = [];\n for (var i = 0; i < columns; ++i) {\n cells.push(_react2.default.createElement(_Cell.CellDesigner, { cellData: (0, _get2.default)(this.cellData, i, []),\n dragAllowed: this.props.dragAllowed,\n dragSourceCell: this.props.dragSourceCell,\n idGenerator: this.props.idGenerator,\n isBeingDragged: this.props.isBeingDragged,\n key: i,\n location: { column: i, row: this.props.rowPosition },\n onChange: this.changeHandler,\n onControlDrop: this.props.onControlDrop,\n ref: this.cellReference,\n setError: this.props.setError,\n showDeleteButton: this.props.showDeleteButton,\n wrapper: this.props.wrapper\n }));\n }\n return cells;\n }\n }, {\n key: 'cellReference',\n value: function cellReference(ref) {\n if (ref) {\n this.cellRef[ref.props.location.column] = ref;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-row row' + this.props.rowPosition,\n onChange: this.changeHandler\n },\n this.createCells()\n );\n }\n }]);\n\n return RowDesigner;\n}(_react.Component);\n\nRowDesigner.propTypes = {\n columns: _propTypes2.default.number,\n dragAllowed: _propTypes2.default.bool,\n dragSourceCell: _propTypes2.default.instanceOf(_Cell.CellDesigner),\n idGenerator: _propTypes2.default.object.isRequired,\n isBeingDragged: _propTypes2.default.bool,\n onChange: _propTypes2.default.func.isRequired,\n onControlDrop: _propTypes2.default.func,\n rowData: _propTypes2.default.array.isRequired,\n rowPosition: _propTypes2.default.number.isRequired,\n setError: _propTypes2.default.func,\n showDeleteButton: _propTypes2.default.bool,\n wrapper: _propTypes2.default.func.isRequired\n};\n\nRowDesigner.defaultProps = {\n columns: rowWidth\n};\n\nvar descriptor = {\n control: RowDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'columns',\n dataType: 'number',\n defaultValue: rowWidth.toString()\n }, {\n name: 'rowPosition',\n dataType: 'number',\n defaultValue: 0\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('row', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Row.jsx\n// module id = 309\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Row.jsx?");
|
||
|
||
/***/ }),
|
||
/* 310 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CellDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _DropTarget2 = __webpack_require__(311);\n\nvar _constants = __webpack_require__(177);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _each = __webpack_require__(164);\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _isEmpty = __webpack_require__(170);\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _classnames = __webpack_require__(135);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar cellPosition = function cellPosition(row, column) {\n return _constants2.default.Grid.defaultRowWidth * row + column;\n};\nvar defaultCellControl = _react2.default.createElement(function () {\n return _react2.default.createElement('div', { className: 'cell' });\n});\n\nvar CellDesigner = exports.CellDesigner = function (_DropTarget) {\n _inherits(CellDesigner, _DropTarget);\n\n function CellDesigner(props) {\n _classCallCheck(this, CellDesigner);\n\n var _this = _possibleConstructorReturn(this, (CellDesigner.__proto__ || Object.getPrototypeOf(CellDesigner)).call(this, props));\n\n _this.state = { data: props.cellData };\n var _props$location = props.location,\n row = _props$location.row,\n column = _props$location.column;\n\n _this.cellPosition = cellPosition(row, column);\n _this.getCellDefinition = _this.getCellDefinition.bind(_this);\n _this.changeHandler = _this.changeHandler.bind(_this);\n _this.childControls = {};\n _this.storeChildRef = _this.storeChildRef.bind(_this);\n _this.deleteControl = _this.deleteControl.bind(_this);\n _this.updateMetadata = _this.updateMetadata.bind(_this);\n _this._setActiveClass(false);\n return _this;\n }\n\n _createClass(CellDesigner, [{\n key: 'deleteControl',\n value: function deleteControl(controlId) {\n var newStateData = this.state.data.filter(function (control) {\n return control.id !== controlId;\n });\n this.setState({ data: newStateData });\n }\n }, {\n key: '_setActiveClass',\n value: function _setActiveClass() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.className = (0, _classnames2.default)('form-builder-column', { active: active });\n }\n }, {\n key: 'processMove',\n value: function processMove(metadata) {\n var filteredData = this.state.data.filter(function (data) {\n return data.id !== metadata.id;\n });\n this.setState({ data: filteredData });\n }\n }, {\n key: 'processDragEnter',\n value: function processDragEnter() {\n this._setActiveClass(true);\n this.forceUpdate();\n }\n }, {\n key: 'processDragLeave',\n value: function processDragLeave() {\n this._setActiveClass(false);\n this.forceUpdate();\n }\n }, {\n key: 'updateMetadata',\n value: function updateMetadata(newMetadata) {\n var arrayOfMetadata = [];\n arrayOfMetadata.push(newMetadata);\n this.setState({ data: arrayOfMetadata });\n }\n /* eslint-disable no-param-reassign */\n\n }, {\n key: 'processDrop',\n value: function processDrop(metadata) {\n var _this2 = this;\n\n var data = this.state.data;\n var onControlDrop = this.props.onControlDrop;\n\n var successCallback = function successCallback(dropControlMetadata) {\n if (_this2.props.dragAllowed === false) {\n return;\n }\n var dataClone = data.slice();\n var metadataClone = Object.assign({}, dropControlMetadata);\n var location = { location: _this2.props.location };\n metadataClone.properties = Object.assign({}, dropControlMetadata.properties, location);\n dataClone.push(metadataClone);\n _this2.changeHandler(_this2.cellPosition);\n _this2.className = (0, _classnames2.default)('form-builder-column', { active: false });\n _this2.setState({ data: dataClone });\n };\n\n if (this.props.dragAllowed !== false) {\n onControlDrop({ cellMetadata: data, dropCell: this, successCallback: successCallback, metadata: metadata });\n }\n }\n }, {\n key: 'storeChildRef',\n value: function storeChildRef(ref) {\n if (ref) this.childControls[ref.props.metadata.id] = ref;\n }\n }, {\n key: 'getComponents',\n value: function getComponents() {\n var _this3 = this;\n\n var data = this.state.data;\n if ((0, _isEmpty2.default)(data)) {\n return defaultCellControl;\n }\n return data.map(function (metadata, key) {\n return _react2.default.createElement(_this3.props.wrapper, {\n key: key,\n idGenerator: _this3.props.idGenerator,\n metadata: metadata,\n parentRef: _this3,\n ref: _this3.storeChildRef,\n wrapper: _this3.props.wrapper,\n deleteControl: _this3.deleteControl,\n setError: _this3.props.setError,\n showDeleteButton: _this3.props.showDeleteButton,\n dragSourceCell: _this3.props.dragSourceCell,\n isBeingDragged: _this3.props.isBeingDragged,\n dragAllowed: _this3.props.dragAllowed\n });\n });\n }\n }, {\n key: 'changeHandler',\n value: function changeHandler(cellLocation) {\n if (this.props.onChange) {\n this.props.onChange(cellLocation);\n }\n }\n }, {\n key: 'getCellDefinition',\n value: function getCellDefinition() {\n var cellDefinition = [];\n (0, _each2.default)(this.childControls, function (childControl) {\n if (childControl.getWrappedInstance()) {\n cellDefinition.push(childControl.getWrappedInstance().getJsonDefinition());\n }\n });\n return cellDefinition;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'form-builder-column-wrapper' },\n !this.props.isBeingDragged ? _react2.default.createElement(\n 'div',\n {\n className: this.className,\n onDragOver: function onDragOver(e) {\n e.preventDefault();\n },\n onDrop: this.onDrop\n },\n this.getComponents()\n ) : _react2.default.createElement(\n 'div',\n {\n className: this.className\n },\n this.getComponents()\n )\n );\n }\n }]);\n\n return CellDesigner;\n}(_DropTarget2.DropTarget);\n\nCellDesigner.dropLoc = {\n row: 0,\n column: 0\n};\n\nCellDesigner.propTypes = {\n cellData: _propTypes2.default.array.isRequired,\n dragAllowed: _propTypes2.default.bool,\n idGenerator: _propTypes2.default.object.isRequired,\n isBeingDragged: _propTypes2.default.bool,\n location: _propTypes2.default.shape({\n column: _propTypes2.default.number,\n row: _propTypes2.default.number\n }).isRequired,\n onChange: _propTypes2.default.func.isRequired,\n onControlDrop: _propTypes2.default.func,\n setError: _propTypes2.default.func,\n showDeleteButton: _propTypes2.default.bool,\n wrapper: _propTypes2.default.func.isRequired\n};\n\nvar descriptor = {\n control: CellDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'location',\n dataType: 'complex',\n attributes: [{\n name: 'column',\n dataType: 'number'\n }, {\n name: 'row',\n dataType: 'number'\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('cell', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Cell.jsx\n// module id = 310\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Cell.jsx?");
|
||
|
||
/***/ }),
|
||
/* 311 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DropTarget = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DropTarget = exports.DropTarget = function (_Component) {\n _inherits(DropTarget, _Component);\n\n function DropTarget(data) {\n _classCallCheck(this, DropTarget);\n\n var _this = _possibleConstructorReturn(this, (DropTarget.__proto__ || Object.getPrototypeOf(DropTarget)).call(this, data));\n\n _this.data = data;\n _this.onDragOver = _this.onDragOver.bind(_this);\n _this.onDrop = _this.onDrop.bind(_this);\n _this.onDragEnter = _this.onDragEnter.bind(_this);\n _this.onDragLeave = _this.onDragLeave.bind(_this);\n return _this;\n }\n\n _createClass(DropTarget, [{\n key: 'onDragEnter',\n value: function onDragEnter(e) {\n this.processDragEnter(e);\n }\n }, {\n key: 'onDragLeave',\n value: function onDragLeave(e) {\n this.processDragLeave(e);\n }\n }, {\n key: 'onDragOver',\n value: function onDragOver(e) {\n e.preventDefault();\n this.processDragOver(e);\n }\n }, {\n key: 'onDrop',\n value: function onDrop(e) {\n e.preventDefault();\n var context = JSON.parse(e.dataTransfer.getData('data'));\n this.processDrop(context);\n e.stopPropagation();\n }\n }, {\n key: 'notifyMove',\n value: function notifyMove(e, context) {\n if (e.dataTransfer && e.dataTransfer.dropEffect !== 'none') {\n this.processMove(context);\n }\n }\n }, {\n key: 'processMove',\n value: function processMove(context) {\n return context;\n }\n }, {\n key: 'processDragEnter',\n value: function processDragEnter(e) {\n return e;\n }\n }, {\n key: 'processDragLeave',\n value: function processDragLeave(e) {\n return e;\n }\n }, {\n key: 'processDragOver',\n value: function processDragOver(e) {\n return e;\n }\n }, {\n key: 'processDrop',\n value: function processDrop(context) {\n return context;\n }\n }]);\n\n return DropTarget;\n}(_react.Component);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DropTarget.jsx\n// module id = 311\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/DropTarget.jsx?");
|
||
|
||
/***/ }),
|
||
/* 312 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseExtremum = __webpack_require__(313),\n baseGt = __webpack_require__(314),\n baseIteratee = __webpack_require__(15);\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/maxBy.js\n// module id = 312\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/maxBy.js?");
|
||
|
||
/***/ }),
|
||
/* 313 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var isSymbol = __webpack_require__(115);\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseExtremum.js\n// module id = 313\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseExtremum.js?");
|
||
|
||
/***/ }),
|
||
/* 314 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGt.js\n// module id = 314\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/_baseGt.js?");
|
||
|
||
/***/ }),
|
||
/* 315 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RadioButtonDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar RadioButtonDesigner = exports.RadioButtonDesigner = function (_Component) {\n _inherits(RadioButtonDesigner, _Component);\n\n function RadioButtonDesigner() {\n _classCallCheck(this, RadioButtonDesigner);\n\n return _possibleConstructorReturn(this, (RadioButtonDesigner.__proto__ || Object.getPrototypeOf(RadioButtonDesigner)).apply(this, arguments));\n }\n\n _createClass(RadioButtonDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.metadata;\n }\n }, {\n key: 'displayRadioButtons',\n value: function displayRadioButtons() {\n var _this2 = this;\n\n return (0, _map2.default)(this.props.metadata.options, function (option, index) {\n return _react2.default.createElement(\n 'div',\n { className: 'option-list', key: index },\n _react2.default.createElement('input', {\n key: index,\n name: _this2.props.metadata.id,\n type: 'radio',\n value: option.value\n }),\n option.name\n );\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n null,\n this.displayRadioButtons()\n );\n }\n }]);\n\n return RadioButtonDesigner;\n}(_react.Component);\n\nRadioButtonDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n options: _propTypes2.default.array.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nvar descriptor = {\n control: RadioButtonDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: []\n }\n};\n\n_componentStore2.default.registerDesignerComponent('radio', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/RadioButton.jsx\n// module id = 315\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/RadioButton.jsx?");
|
||
|
||
/***/ }),
|
||
/* 316 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ButtonDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonDesigner = exports.ButtonDesigner = function (_Component) {\n _inherits(ButtonDesigner, _Component);\n\n function ButtonDesigner() {\n _classCallCheck(this, ButtonDesigner);\n\n return _possibleConstructorReturn(this, (ButtonDesigner.__proto__ || Object.getPrototypeOf(ButtonDesigner)).apply(this, arguments));\n }\n\n _createClass(ButtonDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.options;\n }\n }, {\n key: 'displayButtons',\n value: function displayButtons() {\n return (0, _map2.default)(this.props.options, function (option, index) {\n return _react2.default.createElement(\n 'button',\n { key: index },\n option.name\n );\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'form-control-buttons' },\n this.displayButtons()\n );\n }\n }]);\n\n return ButtonDesigner;\n}(_react.Component);\n\nButtonDesigner.propTypes = {\n options: _propTypes2.default.array.isRequired\n};\n\nvar descriptor = {\n control: ButtonDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: []\n }\n};\n\n_componentStore2.default.registerDesignerComponent('button', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Button.jsx\n// module id = 316\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Button.jsx?");
|
||
|
||
/***/ }),
|
||
/* 317 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BooleanControlDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BooleanControlDesigner = exports.BooleanControlDesigner = function (_Component) {\n _inherits(BooleanControlDesigner, _Component);\n\n function BooleanControlDesigner() {\n _classCallCheck(this, BooleanControlDesigner);\n\n return _possibleConstructorReturn(this, (BooleanControlDesigner.__proto__ || Object.getPrototypeOf(BooleanControlDesigner)).apply(this, arguments));\n }\n\n _createClass(BooleanControlDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.updatedMetadata;\n }\n }, {\n key: 'render',\n value: function render() {\n var defaultOptions = [{ name: 'Yes', translationKey: 'BOOLEAN_YES', value: true }, { name: 'No', translationKey: 'BOOLEAN_NO', value: false }];\n var _props = this.props,\n metadata = _props.metadata,\n _props$metadata$optio = _props.metadata.options,\n options = _props$metadata$optio === undefined ? defaultOptions : _props$metadata$optio;\n\n this.updatedMetadata = Object.assign({}, { options: options }, metadata);\n var registeredComponent = _componentStore2.default.getDesignerComponent('button');\n if (registeredComponent) {\n return _react2.default.createElement(registeredComponent.control, {\n options: options\n });\n }\n return null;\n }\n }]);\n\n return BooleanControlDesigner;\n}(_react.Component);\n\nBooleanControlDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n id: _propTypes2.default.string.isRequired,\n options: _propTypes2.default.array,\n properties: _propTypes2.default.object,\n type: _propTypes2.default.string.isRequired\n })\n};\n\nvar descriptor = {\n control: BooleanControlDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('boolean', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/BooleanControl.jsx\n// module id = 317\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/BooleanControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 318 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Draggable = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Draggable = exports.Draggable = function (_Component) {\n _inherits(Draggable, _Component);\n\n function Draggable(data) {\n _classCallCheck(this, Draggable);\n\n var _this = _possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, data));\n\n _this.data = data;\n _this.onDragStart = _this.onDragStart.bind(_this);\n _this.onDragEnd = _this.onDragEnd.bind(_this);\n return _this;\n }\n\n _createClass(Draggable, [{\n key: 'onDragEnd',\n value: function onDragEnd(context) {\n var _this2 = this;\n\n return function (e) {\n e.stopPropagation();\n if (_this2.data.parentRef) {\n _this2.data.parentRef.notifyMove(e, context);\n }\n };\n }\n }, {\n key: 'onDragStart',\n value: function onDragStart(context) {\n var _this3 = this;\n\n return function (e) {\n var modifiedContext = _this3.processDragStart(context);\n e.dataTransfer.setData('data', JSON.stringify(modifiedContext));\n e.stopPropagation();\n };\n }\n }, {\n key: 'processDragStart',\n value: function processDragStart(context) {\n return context;\n }\n }]);\n\n return Draggable;\n}(_react.Component);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Draggable.jsx\n// module id = 318\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/Draggable.jsx?");
|
||
|
||
/***/ }),
|
||
/* 319 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CodedControlDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _map = __webpack_require__(13);\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _cloneDeep = __webpack_require__(320);\n\nvar _cloneDeep2 = _interopRequireDefault(_cloneDeep);\n\nvar _TranslationKeyService = __webpack_require__(301);\n\nvar _TranslationKeyService2 = _interopRequireDefault(_TranslationKeyService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CodedControlDesigner = exports.CodedControlDesigner = function (_Component) {\n _inherits(CodedControlDesigner, _Component);\n\n function CodedControlDesigner(props) {\n _classCallCheck(this, CodedControlDesigner);\n\n var _this = _possibleConstructorReturn(this, (CodedControlDesigner.__proto__ || Object.getPrototypeOf(CodedControlDesigner)).call(this, props));\n\n _this.storeChildRef = _this.storeChildRef.bind(_this);\n return _this;\n }\n\n _createClass(CodedControlDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n var metadataClone = (0, _cloneDeep2.default)(this.props.metadata);\n var concept = metadataClone.concept,\n id = metadataClone.id;\n\n (0, _map2.default)(concept.answers, function (answer) {\n if (!answer.translationKey) {\n answer.translationKey = new _TranslationKeyService2.default(answer.name.display, id).build(); // eslint-disable-line no-param-reassign\n }\n });\n return Object.assign({}, this.props.metadata, { concept: concept });\n }\n }, {\n key: 'storeChildRef',\n value: function storeChildRef(ref) {\n this.childControl = ref;\n }\n }, {\n key: '_getOptionsRepresentation',\n value: function _getOptionsRepresentation(options) {\n var optionsRepresentation = [];\n (0, _map2.default)(options, function (option) {\n return optionsRepresentation.push({ name: option.name.display || option.name, value: option.uuid });\n });\n return optionsRepresentation;\n }\n }, {\n key: '_getDisplayType',\n value: function _getDisplayType(properties) {\n if (properties.autoComplete) {\n return 'autoComplete';\n } else if (properties.dropDown) {\n return 'dropDown';\n }\n return 'button';\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n metadata = _props.metadata,\n concept = _props.metadata.concept;\n\n var displayType = this._getDisplayType(metadata.properties);\n var registeredComponent = _componentStore2.default.getDesignerComponent(displayType);\n if (registeredComponent) {\n return _react2.default.createElement(registeredComponent.control, {\n asynchronous: false,\n labelKey: 'name',\n options: this._getOptionsRepresentation(concept.answers),\n ref: this.storeChildRef\n });\n }\n return null;\n }\n }]);\n\n return CodedControlDesigner;\n}(_react.Component);\n\nCodedControlDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n options: _propTypes2.default.array,\n properties: _propTypes2.default.object,\n type: _propTypes2.default.string.isRequired\n })\n};\n\nvar descriptor = {\n control: CodedControlDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'autoComplete',\n dataType: 'boolean',\n defaultValue: false\n }, {\n name: 'multiSelect',\n dataType: 'boolean',\n defaultValue: false\n }, {\n name: 'dropDown',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('Coded', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/CodedControl.jsx\n// module id = 319\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/CodedControl.jsx?");
|
||
|
||
/***/ }),
|
||
/* 320 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var baseClone = __webpack_require__(261);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/cloneDeep.js\n// module id = 320\n// module chunks = 0\n//# sourceURL=webpack:///./~/lodash/cloneDeep.js?");
|
||
|
||
/***/ }),
|
||
/* 321 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ObsGroupControlDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _ObsGroupMapper = __webpack_require__(181);\n\nvar _Grid = __webpack_require__(308);\n\nvar _Concept = __webpack_require__(305);\n\nvar _Metadata = __webpack_require__(322);\n\nvar _Label = __webpack_require__(300);\n\nvar _AddMore = __webpack_require__(304);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _Cell = __webpack_require__(310);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ObsGroupControlDesigner = exports.ObsGroupControlDesigner = function (_Component) {\n _inherits(ObsGroupControlDesigner, _Component);\n\n function ObsGroupControlDesigner(props) {\n _classCallCheck(this, ObsGroupControlDesigner);\n\n var _this = _possibleConstructorReturn(this, (ObsGroupControlDesigner.__proto__ || Object.getPrototypeOf(ObsGroupControlDesigner)).call(this, props));\n\n _this.metadata = props.metadata;\n _this.mapper = new _ObsGroupMapper.ObsGroupMapper();\n _this.storeGridRef = _this.storeGridRef.bind(_this);\n _this.storeLabelRef = _this.storeLabelRef.bind(_this);\n _this.deleteButton = _this.deleteButton.bind(_this);\n return _this;\n }\n\n _createClass(ObsGroupControlDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n if (!this.gridRef) return undefined;\n var controls = this.gridRef.getControls();\n var labelJsonDefinition = this.labelControl && this.labelControl.getJsonDefinition();\n return Object.assign({}, this.props.metadata, { controls: controls }, { label: labelJsonDefinition });\n }\n }, {\n key: 'storeGridRef',\n value: function storeGridRef(ref) {\n if (ref) {\n this.gridRef = ref;\n }\n }\n }, {\n key: 'storeLabelRef',\n value: function storeLabelRef(ref) {\n this.labelControl = ref;\n }\n }, {\n key: 'displayLabel',\n value: function displayLabel() {\n var _this2 = this;\n\n var _props = this.props,\n metadata = _props.metadata,\n _props$metadata = _props.metadata,\n label = _props$metadata.label,\n id = _props$metadata.id;\n\n var labelMetadata = Object.assign(label, { id: id }) || { type: 'label', value: metadata.concept.name, id: id };\n return _react2.default.createElement(_Label.LabelDesigner, {\n metadata: labelMetadata,\n onSelect: function onSelect(event) {\n return _this2.props.onSelect(event, metadata);\n },\n ref: this.storeLabelRef,\n showDeleteButton: false\n });\n }\n }, {\n key: 'deleteButton',\n value: function deleteButton(event) {\n this.props.deleteControl();\n this.props.clearSelectedControl(event);\n }\n }, {\n key: 'showDeleteButton',\n value: function showDeleteButton() {\n if (this.props.showDeleteButton) {\n return _react2.default.createElement(\n 'button',\n { className: 'remove-control-button', onClick: this.deleteButton },\n _react2.default.createElement('i', { 'aria-hidden': 'true', className: 'fa fa-trash' })\n );\n }\n return null;\n }\n }, {\n key: 'showAddMore',\n value: function showAddMore() {\n var properties = this.props.metadata.properties;\n\n var isAddMoreEnabled = (0, _find2.default)(properties, function (value, key) {\n return key === 'addMore' && value;\n });\n if (isAddMoreEnabled) {\n return _react2.default.createElement(_AddMore.AddMoreDesigner, null);\n }\n return null;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props2 = this.props,\n metadata = _props2.metadata,\n concept = _props2.metadata.concept;\n\n if (concept) {\n return _react2.default.createElement(\n 'fieldset',\n {\n className: 'form-builder-fieldset',\n onClick: function onClick(event) {\n return _this3.props.onSelect(event, metadata);\n }\n },\n this.showAddMore(),\n this.showDeleteButton(),\n _react2.default.createElement(\n 'legend',\n null,\n _react2.default.createElement(\n 'strong',\n null,\n this.displayLabel()\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'obsGroup-controls' },\n _react2.default.createElement(_Grid.GridDesigner, {\n controls: metadata.controls,\n dragAllowed: false,\n dragSourceCell: this.props.dragSourceCell,\n idGenerator: this.props.idGenerator,\n isBeingDragged: this.props.isBeingDragged,\n isShowDeleteButton: false,\n minRows: 0,\n onControlDrop: function onControlDrop() {},\n ref: this.storeGridRef,\n wrapper: this.props.wrapper\n })\n )\n );\n }\n return _react2.default.createElement(\n 'div',\n { className: 'control-wrapper-content',\n onClick: function onClick(event) {\n return _this3.props.onSelect(event, metadata);\n }\n },\n this.showDeleteButton(),\n 'Select ObsGroup Source'\n );\n }\n }]);\n\n return ObsGroupControlDesigner;\n}(_react.Component);\n\nObsGroupControlDesigner.propTypes = {\n clearSelectedControl: _propTypes2.default.func.isRequired,\n deleteControl: _propTypes2.default.func.isRequired,\n dragSourceCell: _propTypes2.default.instanceOf(_Cell.CellDesigner),\n idGenerator: _propTypes2.default.object.isRequired,\n isBeingDragged: _propTypes2.default.bool,\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.object,\n properties: _propTypes2.default.shape({\n location: _propTypes2.default.shape({\n row: _propTypes2.default.number,\n column: _propTypes2.default.number\n })\n }),\n type: _propTypes2.default.string.isRequired\n }),\n onControlDrop: _propTypes2.default.func,\n onSelect: _propTypes2.default.func.isRequired,\n showDeleteButton: _propTypes2.default.bool,\n wrapper: _propTypes2.default.func.isRequired\n};\n\nObsGroupControlDesigner.injectConceptToMetadata = function (metadata, concept, idGenerator) {\n var conceptSet = new _Concept.Concept(concept);\n var location = metadata.properties && metadata.properties.location;\n return new _Metadata.Metadata().getMetadataForConcept(conceptSet.getConcept(), idGenerator, 'obsGroupControl', 'obsControl', location, metadata.id);\n};\n\nvar descriptor = {\n control: ObsGroupControlDesigner,\n designProperties: {\n displayName: 'ObsGroup',\n isTopLevelComponent: true\n },\n metadata: {\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'obsGroupControl'\n }, {\n name: 'label',\n dataType: 'complex',\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'label'\n }, {\n name: 'value',\n dataType: 'text',\n defaultValue: 'Label'\n }]\n }, {\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'addMore',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('obsGroupControl', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/ObsGroupControlDesigner.jsx\n// module id = 321\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/ObsGroupControlDesigner.jsx?");
|
||
|
||
/***/ }),
|
||
/* 322 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _descriptorParser = __webpack_require__(323);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _Concept = __webpack_require__(305);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Metadata = exports.Metadata = function () {\n function Metadata() {\n _classCallCheck(this, Metadata);\n }\n\n _createClass(Metadata, [{\n key: 'getMetadataForConcept',\n value: function getMetadataForConcept(concept, idGenerator) {\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'obsGroupControl';\n var childType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'obsControl';\n\n var _this = this;\n\n var loc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : { row: 0, column: 0 };\n var id = arguments[5];\n\n var controls = undefined;\n if (concept.set) {\n var row = 0;\n controls = concept.setMembers.map(function (c) {\n if (c.set) {\n return _this.getMetadataForConcept(c, idGenerator, type, undefined, { row: row++, column: loc.column });\n }\n return _this.getMetadataForConcept(c, idGenerator, childType, undefined, { row: row++, column: loc.column });\n });\n }\n\n var properties = {\n location: loc\n };\n var descriptor = new _descriptorParser.DescriptorParser(_componentStore2.default.getDesignerComponent(type));\n var metadata = descriptor.data().metadata;\n metadata.properties = Object.assign({}, metadata.properties, properties);\n\n var updatedMetadata = Object.assign({}, metadata, { id: id || String(idGenerator.getId()) }, { concept: concept }, { controls: controls }, { label: Object.assign({}, metadata.label, { value: concept.name }) }, { properties: Object.assign({}, metadata.properties, properties) });\n if (type === childType) {\n return Object.assign({}, updatedMetadata, new _Concept.Concept(concept).getNumericContext());\n }\n return updatedMetadata;\n }\n }]);\n\n return Metadata;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/Metadata.js\n// module id = 322\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/Metadata.js?");
|
||
|
||
/***/ }),
|
||
/* 323 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DescriptorParser = exports.DescriptorParser = function () {\n function DescriptorParser(descriptor) {\n _classCallCheck(this, DescriptorParser);\n\n this.descriptor = descriptor;\n this.metadata = this.metadata.bind(this);\n this.data = this.data.bind(this);\n this.parsedMetadata = this.metadata();\n }\n\n _createClass(DescriptorParser, [{\n key: 'getDefaultValueByType',\n value: function getDefaultValueByType(type) {\n switch (type) {\n case 'text':\n return '';\n case 'boolean':\n return false;\n case 'numeric':\n return 0;\n case 'complex':\n return {};\n case 'aggregate':\n return [];\n default:\n return null;\n }\n }\n }, {\n key: 'metadata',\n value: function metadata() {\n var _this = this;\n\n var parseAttributes = function parseAttributes(accumulator, attributes) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = attributes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var attribute = _step.value;\n\n var value = {};\n var dataType = attribute.dataType,\n defaultValue = attribute.defaultValue,\n childAttributes = attribute.attributes,\n name = attribute.name;\n\n\n if (dataType === 'complex') parseAttributes(value, childAttributes);else value = defaultValue || _this.getDefaultValueByType(dataType);\n\n Object.assign(accumulator, _defineProperty({}, name, value));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n var parsedMetadata = {};\n var attributes = this.descriptor.metadata.attributes;\n\n parseAttributes(parsedMetadata, attributes);\n return parsedMetadata;\n }\n }, {\n key: 'control',\n value: function control() {\n return this.descriptor.control;\n }\n }, {\n key: 'designProperties',\n value: function designProperties() {\n return this.descriptor.designProperties;\n }\n }, {\n key: 'data',\n value: function data() {\n return {\n designProperties: this.descriptor.designProperties,\n metadata: this.parsedMetadata,\n control: this.descriptor.control\n };\n }\n }]);\n\n return DescriptorParser;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/descriptorParser.js\n// module id = 323\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/descriptorParser.js?");
|
||
|
||
/***/ }),
|
||
/* 324 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DateDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DateDesigner = exports.DateDesigner = function (_Component) {\n _inherits(DateDesigner, _Component);\n\n function DateDesigner() {\n _classCallCheck(this, DateDesigner);\n\n return _possibleConstructorReturn(this, (DateDesigner.__proto__ || Object.getPrototypeOf(DateDesigner)).apply(this, arguments));\n }\n\n _createClass(DateDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.metadata;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement('input', { type: 'date' });\n }\n }]);\n\n return DateDesigner;\n}(_react.Component);\n\nDateDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nvar descriptor = {\n control: DateDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'allowFutureDates',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('date', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Date.jsx\n// module id = 324\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Date.jsx?");
|
||
|
||
/***/ }),
|
||
/* 325 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DateTimeDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DateTimeDesigner = exports.DateTimeDesigner = function (_Component) {\n _inherits(DateTimeDesigner, _Component);\n\n function DateTimeDesigner() {\n _classCallCheck(this, DateTimeDesigner);\n\n return _possibleConstructorReturn(this, (DateTimeDesigner.__proto__ || Object.getPrototypeOf(DateTimeDesigner)).apply(this, arguments));\n }\n\n _createClass(DateTimeDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n return this.props.metadata;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement('input', { type: 'date' }),\n _react2.default.createElement('input', { type: 'time' })\n );\n }\n }]);\n\n return DateTimeDesigner;\n}(_react.Component);\n\nDateTimeDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nvar descriptor = {\n control: DateTimeDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'allowFutureDates',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('dateTime', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/DateTime.jsx\n// module id = 325\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/DateTime.jsx?");
|
||
|
||
/***/ }),
|
||
/* 326 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SectionDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _SectionMapper = __webpack_require__(184);\n\nvar _Grid = __webpack_require__(308);\n\nvar _Label = __webpack_require__(300);\n\nvar _AddMore = __webpack_require__(304);\n\nvar _find = __webpack_require__(136);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _Cell = __webpack_require__(310);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SectionDesigner = exports.SectionDesigner = function (_Component) {\n _inherits(SectionDesigner, _Component);\n\n function SectionDesigner(props) {\n _classCallCheck(this, SectionDesigner);\n\n var _this = _possibleConstructorReturn(this, (SectionDesigner.__proto__ || Object.getPrototypeOf(SectionDesigner)).call(this, props));\n\n _this.metadata = props.metadata;\n _this.mapper = new _SectionMapper.SectionMapper();\n _this.storeGridRef = _this.storeGridRef.bind(_this);\n _this.storeLabelRef = _this.storeLabelRef.bind(_this);\n _this.deleteControl = _this.deleteControl.bind(_this);\n return _this;\n }\n\n _createClass(SectionDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n if (!this.gridRef) return undefined;\n var controls = this.gridRef.getControls();\n var labelJsonDefinition = this.labelControl && this.labelControl.getJsonDefinition();\n return Object.assign({}, this.props.metadata, { controls: controls }, { label: labelJsonDefinition });\n }\n }, {\n key: 'storeGridRef',\n value: function storeGridRef(ref) {\n if (ref) {\n this.gridRef = ref;\n }\n }\n }, {\n key: 'storeLabelRef',\n value: function storeLabelRef(ref) {\n this.labelControl = ref;\n }\n }, {\n key: 'displayLabel',\n value: function displayLabel() {\n var _props$metadata = this.props.metadata,\n label = _props$metadata.label,\n id = _props$metadata.id;\n\n var data = Object.assign({}, label, { id: id });\n return _react2.default.createElement(_Label.LabelDesigner, {\n metadata: data,\n ref: this.storeLabelRef,\n showDeleteButton: false\n });\n }\n }, {\n key: 'deleteControl',\n value: function deleteControl(event) {\n this.props.deleteControl();\n this.props.clearSelectedControl(event);\n }\n }, {\n key: 'showDeleteButton',\n value: function showDeleteButton() {\n if (this.props.showDeleteButton) {\n return _react2.default.createElement(\n 'button',\n { className: 'remove-control-button', onClick: this.deleteControl },\n _react2.default.createElement('i', { 'aria-hidden': 'true', className: 'fa fa-trash' })\n );\n }\n return null;\n }\n }, {\n key: 'stopEventPropagation',\n value: function stopEventPropagation(event) {\n this.props.dispatch();\n event.stopPropagation();\n }\n }, {\n key: 'showAddMore',\n value: function showAddMore() {\n var properties = this.props.metadata.properties;\n\n var isAddMoreEnabled = (0, _find2.default)(properties, function (value, key) {\n return key === 'addMore' && value;\n });\n if (isAddMoreEnabled) {\n return _react2.default.createElement(_AddMore.AddMoreDesigner, null);\n }\n return null;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var metadata = this.props.metadata;\n\n var controls = metadata.controls || [];\n return _react2.default.createElement(\n 'fieldset',\n {\n className: 'form-builder-fieldset',\n onClick: function onClick(event) {\n _this2.stopEventPropagation(event);\n _this2.props.onSelect(event, metadata);\n }\n },\n this.showDeleteButton(),\n this.displayLabel(),\n this.showAddMore(),\n _react2.default.createElement(\n 'div',\n { className: 'obsGroup-controls' },\n _react2.default.createElement(_Grid.GridDesigner, {\n controls: controls,\n dragSourceCell: this.props.dragSourceCell,\n idGenerator: this.props.idGenerator,\n isBeingDragged: this.props.isBeingDragged,\n minRows: 2,\n onControlDrop: this.props.onControlDrop,\n ref: this.storeGridRef,\n showDeleteButton: true,\n wrapper: this.props.wrapper\n })\n )\n );\n }\n }]);\n\n return SectionDesigner;\n}(_react.Component);\n\nSectionDesigner.propTypes = {\n clearSelectedControl: _propTypes2.default.func.isRequired,\n deleteControl: _propTypes2.default.func.isRequired,\n dispatch: _propTypes2.default.func,\n dragSourceCell: _propTypes2.default.instanceOf(_Cell.CellDesigner),\n idGenerator: _propTypes2.default.object.isRequired,\n isBeingDragged: _propTypes2.default.bool,\n metadata: _propTypes2.default.shape({\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.object,\n properties: _propTypes2.default.shape({\n location: _propTypes2.default.shape({\n row: _propTypes2.default.number,\n column: _propTypes2.default.number\n })\n }),\n type: _propTypes2.default.string.isRequired\n }),\n onControlDrop: _propTypes2.default.func,\n onSelect: _propTypes2.default.func.isRequired,\n showDeleteButton: _propTypes2.default.bool,\n wrapper: _propTypes2.default.func.isRequired\n};\n\nvar descriptor = {\n control: SectionDesigner,\n designProperties: {\n displayName: 'Section',\n isTopLevelComponent: true\n },\n metadata: {\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'section'\n }, {\n name: 'label',\n dataType: 'complex',\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'label'\n }, {\n name: 'value',\n dataType: 'text',\n defaultValue: 'Section'\n }]\n }, {\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'addMore',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('section', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Section.jsx\n// module id = 326\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Section.jsx?");
|
||
|
||
/***/ }),
|
||
/* 327 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TableDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Label = __webpack_require__(300);\n\nvar _Grid = __webpack_require__(308);\n\nvar _Cell = __webpack_require__(310);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar supportedControlTypes = ['obsControl'];\nvar unsupportedProperties = ['addMore'];\n\nvar NO_OF_TABLE_COLUMNS = 2;\n\nvar TableDesigner = exports.TableDesigner = function (_Component) {\n _inherits(TableDesigner, _Component);\n\n function TableDesigner(props) {\n _classCallCheck(this, TableDesigner);\n\n var _this = _possibleConstructorReturn(this, (TableDesigner.__proto__ || Object.getPrototypeOf(TableDesigner)).call(this, props));\n\n _this.metadata = props.metadata;\n _this.labelControls = [];\n _this.handleControlDrop = _this.handleControlDrop.bind(_this);\n _this.storeGridRef = _this.storeGridRef.bind(_this);\n _this.storeLabelRef = _this.storeLabelRef.bind(_this);\n _this.storeHeaderRef = _this.storeHeaderRef.bind(_this);\n _this.deleteControl = _this.deleteControl.bind(_this);\n return _this;\n }\n\n _createClass(TableDesigner, [{\n key: 'getJsonDefinition',\n value: function getJsonDefinition() {\n if (!this.gridRef) return undefined;\n var controls = [];\n var columnHeaders = [];\n var metadata = this.props.metadata;\n\n if (this.labelControls.length > 0) {\n this.labelControls.forEach(function (labelControl) {\n columnHeaders.push(labelControl.getJsonDefinition());\n });\n }\n var headerJsonDefinition = this.headerControl && this.headerControl.getJsonDefinition();\n if (metadata) {\n controls.push.apply(controls, _toConsumableArray(this.gridRef.getControls()));\n }\n return Object.assign({}, metadata, { controls: controls }, { label: headerJsonDefinition }, { columnHeaders: columnHeaders });\n }\n }, {\n key: 'getColumnHeaderLabelObject',\n value: function getColumnHeaderLabelObject(columnIndex) {\n var columnHeaders = this.props.metadata.columnHeaders;\n return columnHeaders && columnHeaders.length > 0 ? columnHeaders[columnIndex] : { type: 'label' };\n }\n }, {\n key: 'storeGridRef',\n value: function storeGridRef(ref) {\n if (ref) {\n this.gridRef = ref;\n }\n }\n }, {\n key: 'storeLabelRef',\n value: function storeLabelRef(ref) {\n if (ref) {\n this.labelControls.push(ref);\n }\n }\n }, {\n key: 'storeHeaderRef',\n value: function storeHeaderRef(ref) {\n if (ref) {\n this.headerControl = ref;\n }\n }\n }, {\n key: 'deleteControl',\n value: function deleteControl(event) {\n this.props.deleteControl();\n this.props.clearSelectedControl(event);\n }\n }, {\n key: 'showDeleteButton',\n value: function showDeleteButton() {\n if (this.props.showDeleteButton) {\n return _react2.default.createElement(\n 'button',\n { className: 'remove-control-button', onClick: this.deleteControl },\n _react2.default.createElement('i', { 'aria-hidden': 'true', className: 'fa fa-trash' })\n );\n }\n return null;\n }\n }, {\n key: 'displayLabel',\n value: function displayLabel(value, columnIndex) {\n var id = this.props.metadata.id;\n\n var label = this.getColumnHeaderLabelObject(columnIndex);\n var data = Object.assign({}, label, { id: id, value: value });\n return _react2.default.createElement(_Label.LabelDesigner, {\n key: value,\n metadata: data,\n ref: this.storeLabelRef,\n showDeleteButton: false\n });\n }\n }, {\n key: 'displayTableHeader',\n value: function displayTableHeader() {\n var _props$metadata = this.props.metadata,\n label = _props$metadata.label,\n id = _props$metadata.id;\n\n var data = Object.assign({}, label, { id: id });\n return _react2.default.createElement(_Label.LabelDesigner, {\n metadata: data,\n ref: this.storeHeaderRef,\n showDeleteButton: false\n });\n }\n }, {\n key: 'displayColumnHeaders',\n value: function displayColumnHeaders(columnHeaders) {\n var columnHeaderLabels = [];\n for (var columnIndex = 0; columnIndex < NO_OF_TABLE_COLUMNS; columnIndex++) {\n columnHeaderLabels.push(this.displayLabel(columnHeaders.length > 0 ? columnHeaders[columnIndex].value : 'Column' + (columnIndex + 1), columnIndex));\n }\n return columnHeaderLabels;\n }\n }, {\n key: 'stopEventPropagation',\n value: function stopEventPropagation(event) {\n this.props.dispatch();\n event.stopPropagation();\n }\n }, {\n key: 'handleControlDrop',\n value: function handleControlDrop(_ref) {\n var metadata = _ref.metadata,\n cellMetadata = _ref.cellMetadata,\n successCallback = _ref.successCallback,\n dropCell = _ref.dropCell;\n\n var dragSourceCell = this.props.dragSourceCell;\n function onSuccessfulControlDrop() {\n var hasOnlySupportedControlTypes = supportedControlTypes.includes(metadata.type);\n var hasNoElementInCell = cellMetadata.length === 0;\n if (hasOnlySupportedControlTypes && hasNoElementInCell) {\n successCallback(Object.assign({}, metadata, { unsupportedProperties: unsupportedProperties }));\n } else if (dragSourceCell) {\n dragSourceCell.updateMetadata(metadata);\n }\n }\n this.props.onControlDrop({ metadata: metadata, cellMetadata: cellMetadata,\n successCallback: onSuccessfulControlDrop, dropCell: dropCell });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var metadata = this.props.metadata;\n\n var controls = metadata.controls || [];\n var columnHeaders = metadata.columnHeaders || [];\n return _react2.default.createElement(\n 'fieldset',\n {\n className: 'form-builder-fieldset',\n onClick: function onClick(event) {\n _this2.stopEventPropagation(event);\n _this2.props.onSelect(event, metadata);\n }\n },\n this.displayTableHeader(),\n this.showDeleteButton(),\n _react2.default.createElement(\n 'div',\n { className: 'table-controls' },\n _react2.default.createElement(\n 'div',\n { className: 'header' },\n this.displayColumnHeaders(columnHeaders)\n ),\n _react2.default.createElement(_Grid.GridDesigner, {\n controls: controls,\n dragSourceCell: this.props.dragSourceCell,\n idGenerator: this.props.idGenerator,\n isBeingDragged: this.props.isBeingDragged,\n minColumns: NO_OF_TABLE_COLUMNS,\n minRows: 2,\n onControlDrop: this.handleControlDrop,\n ref: this.storeGridRef,\n showDeleteButton: true,\n wrapper: this.props.wrapper\n })\n )\n );\n }\n }]);\n\n return TableDesigner;\n}(_react.Component);\n\nTableDesigner.propTypes = {\n clearSelectedControl: _propTypes2.default.func.isRequired,\n deleteControl: _propTypes2.default.func.isRequired,\n dispatch: _propTypes2.default.func,\n dragSourceCell: _propTypes2.default.instanceOf(_Cell.CellDesigner),\n idGenerator: _propTypes2.default.object.isRequired,\n isBeingDragged: _propTypes2.default.bool,\n metadata: _propTypes2.default.shape({\n columnHeaders: _propTypes2.default.arrayOf(_propTypes2.default.string),\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n label: _propTypes2.default.object,\n properties: _propTypes2.default.shape({\n location: _propTypes2.default.shape({\n column: _propTypes2.default.number,\n row: _propTypes2.default.number\n })\n }),\n type: _propTypes2.default.string.isRequired\n }),\n onControlDrop: _propTypes2.default.func,\n onSelect: _propTypes2.default.func.isRequired,\n showDeleteButton: _propTypes2.default.bool,\n wrapper: _propTypes2.default.func.isRequired\n};\n\nvar descriptor = {\n control: TableDesigner,\n designProperties: {\n displayName: 'Table',\n isTopLevelComponent: true\n },\n metadata: {\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'table'\n }, {\n name: 'label',\n dataType: 'complex',\n attributes: [{\n name: 'type',\n dataType: 'text',\n defaultValue: 'label'\n }, {\n name: 'value',\n dataType: 'text',\n defaultValue: 'Table'\n }]\n }, {\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n_componentStore2.default.registerDesignerComponent('table', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/TableDesigner.jsx\n// module id = 327\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/TableDesigner.jsx?");
|
||
|
||
/***/ }),
|
||
/* 328 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ImageDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ImageDesigner = exports.ImageDesigner = function (_PureComponent) {\n _inherits(ImageDesigner, _PureComponent);\n\n function ImageDesigner() {\n _classCallCheck(this, ImageDesigner);\n\n return _possibleConstructorReturn(this, (ImageDesigner.__proto__ || Object.getPrototypeOf(ImageDesigner)).apply(this, arguments));\n }\n\n _createClass(ImageDesigner, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'fl complex-component-designer' },\n _react2.default.createElement('input', { disabled: true, type: 'file' })\n );\n }\n }]);\n\n return ImageDesigner;\n}(_react.PureComponent);\n\nImageDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nvar descriptor = {\n control: ImageDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'sameLine',\n dataType: 'boolean',\n defaultValue: false\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('ImageUrlHandler', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Image.jsx\n// module id = 328\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Image.jsx?");
|
||
|
||
/***/ }),
|
||
/* 329 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VideoDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar VideoDesigner = exports.VideoDesigner = function (_PureComponent) {\n _inherits(VideoDesigner, _PureComponent);\n\n function VideoDesigner() {\n _classCallCheck(this, VideoDesigner);\n\n return _possibleConstructorReturn(this, (VideoDesigner.__proto__ || Object.getPrototypeOf(VideoDesigner)).apply(this, arguments));\n }\n\n _createClass(VideoDesigner, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'fl complex-component-designer' },\n _react2.default.createElement('input', { disabled: true, type: 'file' })\n );\n }\n }]);\n\n return VideoDesigner;\n}(_react.PureComponent);\n\nVideoDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n })\n};\n\nvar descriptor = {\n control: VideoDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: []\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('VideoUrlHandler', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Video.jsx\n// module id = 329\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Video.jsx?");
|
||
|
||
/***/ }),
|
||
/* 330 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LocationDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _AutoComplete = __webpack_require__(236);\n\nvar _httpInterceptor = __webpack_require__(253);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LocationDesigner = exports.LocationDesigner = function (_Component) {\n _inherits(LocationDesigner, _Component);\n\n function LocationDesigner(props) {\n _classCallCheck(this, LocationDesigner);\n\n var _this = _possibleConstructorReturn(this, (LocationDesigner.__proto__ || Object.getPrototypeOf(LocationDesigner)).call(this, props));\n\n _this.state = { locationData: [] };\n return _this;\n }\n\n _createClass(LocationDesigner, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var _props = this.props,\n properties = _props.metadata.properties,\n setError = _props.setError;\n\n var defaultUrl = '/openmrs/ws/rest/v1/location?v=custom:(id,name,uuid)';\n var url = properties.URL || defaultUrl;\n _httpInterceptor.httpInterceptor.get(url).then(function (data) {\n return _this2.setState({ locationData: data.results });\n }).catch(function () {\n if (setError) {\n setError({ message: 'Invalid Location URL' });\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var labelKey = 'name';\n var valueKey = 'id';\n var properties = this.props.metadata.properties;\n\n var isSearchable = properties.style === 'autocomplete';\n var minimumInput = isSearchable ? 2 : 0;\n return _react2.default.createElement(_AutoComplete.AutoComplete, {\n asynchronous: false,\n enabled: true,\n labelKey: labelKey,\n minimumInput: minimumInput,\n options: this.state.locationData,\n searchable: isSearchable,\n valueKey: valueKey\n });\n }\n }]);\n\n return LocationDesigner;\n}(_react.Component);\n\nLocationDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n }),\n setError: _propTypes2.default.func\n};\n\nvar descriptor = {\n control: LocationDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'URL',\n dataType: 'string',\n defaultValue: '/openmrs/ws/rest/v1/location?v=custom:(id,name,uuid)',\n elementType: 'text'\n }, {\n name: 'style',\n dataType: 'string',\n defaultValue: 'dropdown',\n elementType: 'dropdown',\n options: ['autocomplete', 'dropdown']\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('LocationObsHandler', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Location.jsx\n// module id = 330\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Location.jsx?");
|
||
|
||
/***/ }),
|
||
/* 331 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ProviderDesigner = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(3);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(4);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentStore = __webpack_require__(168);\n\nvar _componentStore2 = _interopRequireDefault(_componentStore);\n\nvar _AutoComplete = __webpack_require__(236);\n\nvar _httpInterceptor = __webpack_require__(253);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ProviderDesigner = exports.ProviderDesigner = function (_Component) {\n _inherits(ProviderDesigner, _Component);\n\n function ProviderDesigner(props) {\n _classCallCheck(this, ProviderDesigner);\n\n var _this = _possibleConstructorReturn(this, (ProviderDesigner.__proto__ || Object.getPrototypeOf(ProviderDesigner)).call(this, props));\n\n _this.state = { providerData: [] };\n return _this;\n }\n\n _createClass(ProviderDesigner, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var _props = this.props,\n properties = _props.metadata.properties,\n setError = _props.setError;\n\n var defaultUrl = '/openmrs/ws/rest/v1/provider?v=custom:(id,name,uuid)';\n var url = properties.URL || defaultUrl;\n _httpInterceptor.httpInterceptor.get(url).then(function (data) {\n return _this2.setState({ providerData: data.results });\n }).catch(function () {\n if (setError) {\n setError({ message: 'Invalid Provider URL' });\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var labelKey = 'name';\n var valueKey = 'id';\n var properties = this.props.metadata.properties;\n\n var isSearchable = properties.style === 'autocomplete';\n var minimumInput = isSearchable ? 2 : 0;\n return _react2.default.createElement(_AutoComplete.AutoComplete, {\n asynchronous: false,\n enabled: true,\n labelKey: labelKey,\n minimumInput: minimumInput,\n options: this.state.providerData,\n searchable: isSearchable,\n valueKey: valueKey\n });\n }\n }]);\n\n return ProviderDesigner;\n}(_react.Component);\n\nProviderDesigner.propTypes = {\n metadata: _propTypes2.default.shape({\n concept: _propTypes2.default.object.isRequired,\n displayType: _propTypes2.default.string,\n id: _propTypes2.default.string.isRequired,\n properties: _propTypes2.default.object.isRequired,\n type: _propTypes2.default.string\n }),\n setError: _propTypes2.default.func\n};\n\nvar descriptor = {\n control: ProviderDesigner,\n designProperties: {\n isTopLevelComponent: false\n },\n metadata: {\n attributes: [{\n name: 'properties',\n dataType: 'complex',\n attributes: [{\n name: 'URL',\n dataType: 'string',\n defaultValue: '/openmrs/ws/rest/v1/provider?v=custom:(id,name,uuid)',\n elementType: 'text'\n }, {\n name: 'style',\n dataType: 'string',\n defaultValue: 'dropdown',\n elementType: 'dropdown',\n options: ['autocomplete', 'dropdown']\n }]\n }]\n }\n};\n\n_componentStore2.default.registerDesignerComponent('ProviderObsHandler', descriptor);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/designer/Provider.jsx\n// module id = 331\n// module chunks = 0\n//# sourceURL=webpack:///./src/components/designer/Provider.jsx?");
|
||
|
||
/***/ }),
|
||
/* 332 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar IDGenerator = exports.IDGenerator = function () {\n function IDGenerator() {\n var controls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n _classCallCheck(this, IDGenerator);\n\n this.controlIDs = this.getControlIDs(controls);\n this.maxId = Math.max.apply(Math, _toConsumableArray(this.controlIDs)) || 0;\n this.maxId = this.maxId === -Infinity ? 1 : this.maxId + 1;\n }\n\n _createClass(IDGenerator, [{\n key: \"getControlIDs\",\n value: function getControlIDs(controls) {\n var _this = this,\n _ref;\n\n var controlIDs = controls.map(function (control) {\n if (control.controls) {\n return [].concat(control.id, _this.getControlIDs(control.controls));\n }\n return control.id;\n });\n return (_ref = []).concat.apply(_ref, _toConsumableArray(controlIDs));\n }\n }, {\n key: \"getId\",\n value: function getId() {\n return this.maxId++;\n }\n }]);\n\n return IDGenerator;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/helpers/idGenerator.js\n// module id = 332\n// module chunks = 0\n//# sourceURL=webpack:///./src/helpers/idGenerator.js?");
|
||
|
||
/***/ }),
|
||
/* 333 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BooleanValueMapper = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ValueMapperStore = __webpack_require__(190);\n\nvar _ValueMapperStore2 = _interopRequireDefault(_ValueMapperStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BooleanValueMapper = exports.BooleanValueMapper = function () {\n function BooleanValueMapper() {\n _classCallCheck(this, BooleanValueMapper);\n }\n\n _createClass(BooleanValueMapper, [{\n key: 'getValue',\n value: function getValue(control, value) {\n var _control$options$filt = control.options.filter(function (opt) {\n return opt.value === value;\n }),\n _control$options$filt2 = _slicedToArray(_control$options$filt, 1),\n option = _control$options$filt2[0];\n\n return option && option.name;\n }\n }, {\n key: 'setValue',\n value: function setValue(control, value) {\n var _control$options$filt3 = control.options.filter(function (opt) {\n return opt.name === value;\n }),\n _control$options$filt4 = _slicedToArray(_control$options$filt3, 1),\n option = _control$options$filt4[0];\n\n return option && option.value;\n }\n }]);\n\n return BooleanValueMapper;\n}();\n\n_ValueMapperStore2.default.registerValueMapper('Boolean', new BooleanValueMapper());\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/BooleanValueMapper.js\n// module id = 333\n// module chunks = 0\n//# sourceURL=webpack:///./src/mapper/BooleanValueMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 334 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CodedValueMapper = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ValueMapperStore = __webpack_require__(190);\n\nvar _ValueMapperStore2 = _interopRequireDefault(_ValueMapperStore);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar CodedValueMapper = exports.CodedValueMapper = function () {\n function CodedValueMapper() {\n _classCallCheck(this, CodedValueMapper);\n }\n\n _createClass(CodedValueMapper, [{\n key: 'getValue',\n value: function getValue(control, value) {\n return value && value.displayString;\n }\n }, {\n key: 'setValue',\n value: function setValue(control, value) {\n var _control$concept$answ = control.concept.answers.filter(function (obj) {\n return obj.displayString === value;\n }),\n _control$concept$answ2 = _slicedToArray(_control$concept$answ, 1),\n answer = _control$concept$answ2[0];\n\n return answer;\n }\n }]);\n\n return CodedValueMapper;\n}();\n\n_ValueMapperStore2.default.registerValueMapper('Coded', new CodedValueMapper());\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mapper/CodedValueMapper.js\n// module id = 334\n// module chunks = 0\n//# sourceURL=webpack:///./src/mapper/CodedValueMapper.js?");
|
||
|
||
/***/ }),
|
||
/* 335 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(336);\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(339)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../node_modules/css-loader/index.js!../node_modules/sass-loader/index.js!./styles.scss\", function() {\n\t\t\tvar newContent = require(\"!!../node_modules/css-loader/index.js!../node_modules/sass-loader/index.js!./styles.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./styles/styles.scss\n// module id = 335\n// module chunks = 0\n//# sourceURL=webpack:///./styles/styles.scss?");
|
||
|
||
/***/ }),
|
||
/* 336 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("exports = module.exports = __webpack_require__(337)();\n// imports\n\n\n// module\nexports.push([module.id, \"/* settings */\\n/* _colors - bahmniTheme: */\\n/* _different shades of grey/gray: */\\n/* any text will not be lighter than this */\\n/* any border will not be lighter than this */\\n/* any background will not be lighter than this */\\n/* _spacing padding - margin: */\\n.clearfix:before {\\n content: \\\"\\\";\\n display: table; }\\n\\n.clearfix:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both; }\\n\\n.Select {\\n position: relative; }\\n\\n.Select.is-disabled > .Select-control {\\n background-color: #f9f9f9; }\\n\\n.Select.is-disabled > .Select-control:hover {\\n box-shadow: none; }\\n\\n.Select.is-disabled .Select-arrow-zone {\\n cursor: default;\\n pointer-events: none;\\n opacity: 0.35; }\\n\\n.Select-control {\\n background-color: #fff;\\n border-color: #d9d9d9 #ccc #b3b3b3;\\n border-radius: 4px;\\n border: 1px solid #ccc;\\n color: #333;\\n cursor: default;\\n display: table;\\n border-spacing: 0;\\n border-collapse: separate;\\n height: 36px;\\n outline: none;\\n overflow: hidden;\\n position: relative;\\n width: 100%; }\\n\\n.Select-control:hover {\\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); }\\n\\n.Select-control .Select-input:focus {\\n outline: none; }\\n\\n.is-searchable.is-open > .Select-control {\\n cursor: text; }\\n\\n.is-open > .Select-control {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n background: #fff;\\n border-color: #b3b3b3 #ccc #d9d9d9; }\\n\\n.is-open > .Select-control > .Select-arrow {\\n border-color: transparent transparent #999;\\n border-width: 0 5px 5px; }\\n\\n.is-searchable.is-focused:not(.is-open) > .Select-control {\\n cursor: text; }\\n\\n.is-focused:not(.is-open) > .Select-control {\\n border-color: #007eff;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 3px rgba(0, 126, 255, 0.1); }\\n\\n.Select-placeholder,\\n.Select--single > .Select-control .Select-value {\\n bottom: 0;\\n color: #aaa;\\n left: 0;\\n line-height: 34px;\\n padding-left: 10px;\\n padding-right: 10px;\\n position: absolute;\\n right: 0;\\n top: 0;\\n max-width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.has-value.Select--single > .Select-control .Select-value .Select-value-label,\\n.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\\n color: #363463; }\\n\\n.has-value.Select--single > .Select-control .Select-value a.Select-value-label,\\n.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\\n cursor: pointer;\\n text-decoration: none; }\\n\\n.has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\\n.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\\n.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\\n.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\\n color: #007eff;\\n outline: none;\\n text-decoration: underline; }\\n\\n.Select-input {\\n height: 34px;\\n padding-left: 10px;\\n padding-right: 10px;\\n vertical-align: middle;\\n width: 100% !important;\\n min-width: initial !important; }\\n .Select-input input {\\n width: 100%;\\n background: none transparent;\\n border: none !important;\\n box-shadow: none;\\n cursor: default;\\n display: inline-block;\\n font-family: inherit;\\n font-size: inherit;\\n margin: 0;\\n outline: none;\\n line-height: 14px;\\n padding: 8px 0 12px; }\\n\\n.is-focused .Select-input input {\\n cursor: text; }\\n\\n.has-value.is-pseudo-focused .Select-input {\\n opacity: 0; }\\n\\n.Select-control:not(.is-searchable) > .Select-input {\\n outline: none; }\\n\\n.Select-loading-zone {\\n cursor: pointer;\\n display: table-cell;\\n position: relative;\\n text-align: center;\\n vertical-align: middle;\\n width: 16px; }\\n\\n.Select-loading {\\n -webkit-animation: Select-animation-spin 400ms infinite linear;\\n -o-animation: Select-animation-spin 400ms infinite linear;\\n animation: Select-animation-spin 400ms infinite linear;\\n width: 16px;\\n height: 16px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n border: 2px solid #ccc;\\n border-right-color: #333;\\n display: inline-block;\\n position: relative;\\n vertical-align: middle; }\\n\\n.Select-clear-zone {\\n -webkit-animation: Select-animation-fadeIn 200ms;\\n -o-animation: Select-animation-fadeIn 200ms;\\n animation: Select-animation-fadeIn 200ms;\\n color: #999;\\n cursor: pointer;\\n display: table-cell;\\n position: relative;\\n text-align: center;\\n vertical-align: middle;\\n width: 17px; }\\n\\n.Select-clear-zone:hover {\\n color: #D0021B; }\\n\\n.Select-clear {\\n display: inline-block;\\n font-size: 18px;\\n line-height: 1; }\\n\\n.Select--multi .Select-clear-zone {\\n width: 17px; }\\n\\n.Select-arrow-zone {\\n cursor: pointer;\\n display: table-cell;\\n position: relative;\\n text-align: center;\\n vertical-align: middle;\\n width: 25px;\\n padding-right: 5px; }\\n\\n.Select-arrow {\\n border-color: #999 transparent transparent;\\n border-style: solid;\\n border-width: 5px 5px 2.5px;\\n display: inline-block;\\n height: 0;\\n width: 0; }\\n\\n.is-open .Select-arrow,\\n.Select-arrow-zone:hover > .Select-arrow {\\n border-top-color: #666; }\\n\\n.Select--multi .Select-multi-value-wrapper {\\n display: inline-block; }\\n\\n.Select .Select-aria-only {\\n display: inline-block;\\n height: 1px;\\n width: 1px;\\n margin: -1px;\\n clip: rect(0, 0, 0, 0);\\n overflow: hidden; }\\n\\n@-webkit-keyframes Select-animation-fadeIn {\\n from {\\n opacity: 0; }\\n to {\\n opacity: 1; } }\\n\\n@keyframes Select-animation-fadeIn {\\n from {\\n opacity: 0; }\\n to {\\n opacity: 1; } }\\n\\n.Select-menu-outer {\\n border-bottom-right-radius: 4px;\\n border-bottom-left-radius: 4px;\\n background-color: #fff;\\n border: 1px solid #ccc;\\n border-top-color: #e6e6e6;\\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n box-sizing: border-box;\\n margin-top: -1px;\\n max-height: 200px;\\n position: absolute;\\n top: 100%;\\n width: 100%;\\n z-index: 1;\\n -webkit-overflow-scrolling: touch; }\\n\\n.Select-menu {\\n max-height: 198px;\\n overflow-y: auto; }\\n\\n.Select-option {\\n box-sizing: border-box;\\n background-color: #fff;\\n color: #666666;\\n cursor: pointer;\\n display: block;\\n padding: 8px 10px; }\\n\\n.Select-option:last-child {\\n border-bottom-right-radius: 4px;\\n border-bottom-left-radius: 4px; }\\n\\n.Select-option.is-selected {\\n background-color: #f5faff;\\n /* Fallback color for IE 8 */\\n background-color: rgba(0, 126, 255, 0.04);\\n color: #333; }\\n\\n.Select-option.is-focused {\\n background-color: #ebf5ff;\\n /* Fallback color for IE 8 */\\n background-color: rgba(0, 126, 255, 0.08);\\n color: #333; }\\n\\n.Select-option.is-disabled {\\n color: #cccccc;\\n cursor: default; }\\n\\n.Select-noresults {\\n box-sizing: border-box;\\n color: #999999;\\n cursor: default;\\n display: block;\\n padding: 8px 10px; }\\n\\n.Select--multi .Select-input {\\n vertical-align: middle;\\n margin-left: 10px;\\n padding: 0; }\\n\\n.Select--multi.has-value .Select-input {\\n margin-left: 5px; }\\n\\n@keyframes Select-animation-spin {\\n to {\\n transform: rotate(1turn); } }\\n\\n@-webkit-keyframes Select-animation-spin {\\n to {\\n -webkit-transform: rotate(1turn); } }\\n\\n.form-control-buttons {\\n float: left;\\n margin-right: 10px; }\\n .form-control-buttons button {\\n margin: 0 2px 4px 0;\\n text-align: center;\\n width: auto;\\n padding-left: 15px;\\n padding-right: 15px;\\n font-size: 12px;\\n float: none;\\n line-height: 1em !important; }\\n .form-control-buttons button i.fa-ok {\\n display: none;\\n padding-top: 0;\\n padding-bottom: 0;\\n font-size: 14px;\\n line-height: inherit; }\\n .form-control-buttons button.active {\\n color: #457FAC;\\n padding-left: 3px;\\n background: #d8d8d8;\\n border-color: #d0d0d0; }\\n .form-control-buttons button.active i.fa-ok {\\n display: inline-block; }\\n\\n.form-builder-canvas .obs-control-select-wrapper, .form-builder-row .obs-control-select-wrapper {\\n display: inline-block !important;\\n box-sizing: border-box;\\n float: left;\\n margin-right: 10px; }\\n .form-builder-canvas .obs-control-select-wrapper.form-builder-error, .form-builder-row .obs-control-select-wrapper.form-builder-error {\\n border: none !important;\\n background: none !important; }\\n .form-builder-canvas .obs-control-select-wrapper.form-builder-error .Select-control, .form-builder-row .obs-control-select-wrapper.form-builder-error .Select-control {\\n border: 2px solid #ff3434 !important;\\n background: #ffcdcd !important; }\\n .form-builder-canvas .obs-control-select-wrapper.form-builder-error .Select-control input, .form-builder-row .obs-control-select-wrapper.form-builder-error .Select-control input {\\n background-color: transparent; }\\n\\n.form-builder-canvas .Select-control, .form-builder-row .Select-control {\\n width: 197px;\\n height: 25px; }\\n .form-builder-canvas .Select-control .Select-placeholder, .form-builder-canvas .Select-control .Select-value, .form-builder-row .Select-control .Select-placeholder, .form-builder-row .Select-control .Select-value {\\n line-height: 24px;\\n max-width: initial; }\\n\\n.form-builder-canvas .Select-input, .form-builder-row .Select-input {\\n height: 25px; }\\n .form-builder-canvas .Select-input input, .form-builder-row .Select-input input {\\n padding: 3px 0 !important;\\n margin-top: 0 !important; }\\n\\n.form-builder-canvas .Select--single > .Select-control .Select-value .Select-value-label, .form-builder-row .Select--single > .Select-control .Select-value .Select-value-label {\\n width: 135px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n display: block; }\\n\\n.form-builder-canvas .Select--multi .Select-control, .form-builder-row .Select--multi .Select-control {\\n width: 275px; }\\n .form-builder-canvas .Select--multi .Select-control .Select-value, .form-builder-row .Select--multi .Select-control .Select-value {\\n float: left;\\n background: #eee;\\n border-radius: 5px;\\n padding: 5px;\\n box-sizing: border-box;\\n margin: 3px;\\n line-height: 1em; }\\n .form-builder-canvas .Select--multi .Select-control .Select-value .Select-value-icon, .form-builder-row .Select--multi .Select-control .Select-value .Select-value-icon {\\n float: left;\\n display: inline-block;\\n cursor: pointer;\\n width: 12px; }\\n\\n.form-builder-canvas .Select--multi .Select-menu-outer, .form-builder-row .Select--multi .Select-menu-outer {\\n width: 275px; }\\n\\n.form-builder-error {\\n border: 2px solid #ff6666;\\n background: #ffcdcd; }\\n\\n.form-builder-warning {\\n border: 2px solid #ffe63f;\\n background: #FFFAD8;\\n color: #ff3434; }\\n\\n.script-circle {\\n position: absolute;\\n top: 0;\\n padding: 5px;\\n right: 15px;\\n background: #FFF;\\n border: 1px solid #ddd;\\n border-radius: 5px;\\n color: #ff3434;\\n margin: auto;\\n box-sizing: border-box;\\n height: 24px;\\n bottom: 0; }\\n\\n.messages .message-container {\\n width: 35%;\\n margin: 5px auto;\\n padding: 7px 10px;\\n border-radius: 2px;\\n font-size: 14px;\\n color: #FFF;\\n font-family: OpenSansSemiBold;\\n text-align: center;\\n position: fixed;\\n top: 50px;\\n left: 32%;\\n z-index: 99999999;\\n display: table; }\\n .messages .message-container .message-icon.success {\\n display: block;\\n font-size: 30px;\\n text-align: left;\\n width: 12%; }\\n .messages .message-container .message-icon.error {\\n display: none; }\\n\\n.messages .error-message-container {\\n background: #d87777;\\n background: -moz-linear-gradient(top, #d87777 1%, #d95757 100%);\\n background: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #d87777), color-stop(100%, #d95757));\\n background: -webkit-linear-gradient(top, #d87777 1%, #d95757 100%);\\n background: -o-linear-gradient(top, #d87777 1%, #d95757 100%);\\n background: -ms-linear-gradient(top, #d87777 1%, #d95757 100%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#d87777', endColorstr = '#d95757', GradientType = 0);\\n background: linear-gradient(top, #d87777 1%, #d95757 100%);\\n border: 1px solid #b72224; }\\n .messages .error-message-container .types-for-errors {\\n display: block;\\n text-align: center;\\n padding: 0 0 7px; }\\n .messages .error-message-container .button-wrappper .copy-btn, .messages .error-message-container .button-wrappper .show-btn {\\n padding: 5px;\\n font-family: OpenSansSemiBold;\\n font-size: 12px;\\n width: 74px; }\\n\\n.messages .success-message-container {\\n background: #8ad382;\\n background: -moz-linear-gradient(top, #8ad382 0%, #6ab165 100%);\\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #8ad382), color-stop(100%, #6ab165));\\n background: -webkit-linear-gradient(top, #8ad382 0%, #6ab165 100%);\\n background: -o-linear-gradient(top, #8ad382 0%, #6ab165 100%);\\n background: -ms-linear-gradient(top, #8ad382 0%, #6ab165 100%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#8ad382', endColorstr = '#6ab165', GradientType = 0);\\n background: linear-gradient(top, #8ad382 0%, #6ab165 100%);\\n border: 1px solid #4b8048;\\n padding: 0px 10px; }\\n .messages .success-message-container .fa {\\n padding: 0 !important;\\n padding-bottom: 3px !important; }\\n\\n.success-message-container .message-icon {\\n display: table-cell !important; }\\n\\n.success-message-container .message-text {\\n display: table-cell;\\n text-align: left;\\n vertical-align: middle; }\\n\\n.overlay {\\n z-index: 9999999999999;\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n background: rgba(0, 0, 0, 0.6) url(\" + __webpack_require__(338) + \") no-repeat center center;\\n top: 0;\\n left: 0; }\\n\\n.form-builder-row {\\n width: 100%; }\\n .form-builder-row .form-builder-column-wrapper {\\n min-height: 50px;\\n width: 100%;\\n padding: 5px 10px;\\n box-sizing: border-box;\\n clear: both; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column {\\n min-height: 50px;\\n width: 100%;\\n padding: 5px 10px;\\n box-sizing: border-box;\\n clear: both; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column.active {\\n border: 1px dotted #BBB; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap {\\n position: relative;\\n margin-top: 5px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-comment-wrap {\\n display: flex; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-comment-wrap .obs-empty-block {\\n flex: 2; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-comment-wrap .obs-comment-content {\\n flex: 9; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-comment-wrap .obs-comment-content textarea {\\n width: 85%; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-field-content-wrap {\\n display: flex; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-comment-section-wrap textarea {\\n width: 69.3%;\\n float: right;\\n margin-top: 10px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .label-wrap {\\n float: left;\\n padding-right: 30px;\\n font-size: 12px;\\n margin-top: 5px;\\n text-align: right;\\n position: relative;\\n flex: 4; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .label-wrap label {\\n padding-right: 10px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .label-wrap .form-builder-asterisk {\\n position: absolute;\\n color: #ff3434;\\n top: 0;\\n right: 20px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-control-field {\\n flex: 9; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-control-field textarea {\\n width: 70%;\\n float: left; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .obs-control-field .form-control-buttons {\\n width: 70%; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input {\\n width: 12.5em;\\n color: #363463;\\n padding: 2px 10px;\\n margin: 0 10px 5px 0;\\n background-color: #FFF;\\n border: 1px solid #ddd;\\n font-size: 14px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input.form-builder-label {\\n margin-top: -4px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input[type=\\\"date\\\"], .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input[type=\\\"time\\\"] {\\n float: left; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input.form-builder-warning {\\n outline: 2px solid #ffe63f;\\n background: #FFFAD8;\\n color: #ff3434; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input.form-builder-error {\\n outline: 2px solid #ff6666;\\n background: #ffcdcd; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input[disabled] {\\n background: #eee;\\n border: #ccc 1px solid;\\n color: #ccc;\\n font-style: normal;\\n cursor: not-allowed; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap input.computed-value {\\n border: 0;\\n color: #363463;\\n background: #FFFFFF;\\n pointer-events: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-valid-range {\\n color: #666;\\n font-size: 13px;\\n padding-right: 10px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-wrap {\\n clear: both;\\n overflow: hidden; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle {\\n position: absolute;\\n right: 10px;\\n top: -2px;\\n padding: 5px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle.active .fa-file-o .fa-plus-circle {\\n display: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle.active .fa-file-o .fa-minus-circle {\\n display: block; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-o {\\n position: relative;\\n color: #666; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-o .fa-minus-circle {\\n display: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-o .fa-plus-circle, .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-o .fa-ok-sign, .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-o .fa-plus, .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-o .fa-minus-circle {\\n position: absolute;\\n right: 2px;\\n bottom: 2px;\\n font-size: 10px;\\n color: #008000;\\n background: #FFF;\\n border-radius: 8px;\\n padding: 0; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle .fa-file-text-o {\\n display: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle.has-notes .fa-file-o {\\n display: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle.has-notes .fa-file-text-o {\\n display: block; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap textarea {\\n float: left;\\n word-wrap: break-word;\\n min-height: 53px;\\n padding: 2px 10px;\\n color: #363463;\\n background-color: #FFF;\\n border: 1px solid #ddd;\\n box-sizing: border-box;\\n resize: vertical;\\n margin: 0 10px 5px 0; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap textarea.form-builder-error {\\n outline: 2px solid #ff6666;\\n background: #ffcdcd; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap textarea[disabled] {\\n background: #eee;\\n border: #ccc 1px solid;\\n color: #ccc;\\n font-style: normal;\\n cursor: not-allowed; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap {\\n display: inline-block;\\n position: absolute;\\n top: 0;\\n right: 2px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap .form-builder-tooltip-trigger {\\n cursor: pointer;\\n display: inline-block;\\n width: 18px;\\n height: 18px;\\n line-height: 18px;\\n text-align: center;\\n border-radius: 100%;\\n font-size: 20px;\\n color: #669999;\\n box-shadow: 1px 1px 1px #ccc;\\n background: #FFF;\\n padding: 0;\\n position: relative; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap .form-builder-tooltip-description {\\n bottom: calc(100% + 10px);\\n margin-left: 0;\\n margin-top: 0;\\n text-align: left;\\n position: absolute;\\n display: none;\\n z-index: 9; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap .form-builder-tooltip-description .details {\\n display: inline-block;\\n font-size: 12px;\\n padding: 5px;\\n border-radius: 5px;\\n background: #000;\\n color: #FFF;\\n width: 200px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap .form-builder-tooltip-description i {\\n position: absolute;\\n bottom: -16px;\\n left: 1%;\\n font-size: 20px;\\n color: #000; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap .form-builder-tooltip-description p {\\n margin-bottom: 5px;\\n line-height: 1.1; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-tooltip-wrap.active .form-builder-tooltip-description {\\n display: block; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-builder-clone {\\n float: left; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-builder-clone .form-builder-add-more {\\n padding: 2px 0;\\n color: #008000;\\n margin: 0; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-builder-clone .form-builder-remove {\\n padding: 2px 0;\\n color: #9D0101;\\n margin-left: 10px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .abnormal-button {\\n margin-right: 10px;\\n float: left;\\n line-height: 1; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .abnormal-button i {\\n padding: 0; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend {\\n padding: 2px 10px;\\n color: #666;\\n border: 1px solid #999;\\n border-radius: 20px;\\n text-transform: none;\\n font-size: 12px;\\n background: #FFF;\\n position: absolute;\\n top: -11px;\\n left: 10px; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle {\\n cursor: pointer; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle i {\\n width: 1.25em;\\n text-align: center;\\n margin-left: 1.25em; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle .fa-caret-right {\\n display: inline-block; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle .fa-caret-down {\\n display: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle.active {\\n background: #FFF; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle.active .fa-caret-right {\\n display: none; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle.active .fa-caret-down {\\n display: inline-block;\\n width: 1.2em; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle.active.disabled {\\n background: #eee;\\n border: #ccc 1px solid;\\n color: grey;\\n font-style: normal; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column legend.form-builder-toggle.disabled {\\n background: #eee;\\n border: #ccc 1px solid;\\n color: grey;\\n font-style: normal; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-builder-fieldset {\\n border-top: 1px solid #c0c0c0;\\n margin: 15px 2px 10px;\\n box-sizing: border-box;\\n border-radius: 5px;\\n position: relative; }\\n .form-builder-row .form-builder-column-wrapper .form-builder-column .form-builder-fieldset > .form-builder-clone {\\n position: absolute;\\n right: 20px;\\n top: -7px; }\\n\\n.form-builder-radio {\\n display: inline-block; }\\n\\n.table-controls {\\n padding-top: 5px; }\\n .table-controls .row-wrapper {\\n flex: 1; }\\n .table-controls .form-builder-row {\\n display: flex; }\\n .table-controls .form-builder-row .form-builder-column-wrapper {\\n border: 1px dotted #BBB; }\\n .table-controls .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-field-content-wrap {\\n width: 90.5%; }\\n .table-controls .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap .form-builder-comment-toggle {\\n top: 6px;\\n right: 4px; }\\n .table-controls .form-builder-row .form-builder-column-wrapper .form-builder-column .form-field-wrap button.form-builder-comment-button-toggle {\\n padding: 1px;\\n top: 1px; }\\n .table-controls .header {\\n display: flex;\\n background: #ddd; }\\n .table-controls .header .control-wrapper-content, .table-controls .header .form-builder-label {\\n flex: 1;\\n border: 1px dotted #BBB;\\n padding: 5px; }\\n .table-controls .header label {\\n font-weight: bold;\\n margin-left: 5px; }\\n\\n.table-header {\\n color: #666; }\\n\\n.active-group-controls {\\n display: block;\\n padding: 15px 10px 10px;\\n border-radius: 5px;\\n border: 1px solid #c0c0c0;\\n border-top: none; }\\n\\n.closing-group-controls {\\n display: none; }\\n\\n.concept-set-group .form-builder-row .form-builder-column .form-builder-fieldset > .form-builder-clone {\\n right: 10px;\\n top: -14px; }\\n\\n.Select.is-disabled > .Select-control {\\n background: #eee;\\n border: #ccc 1px solid;\\n color: #ccc;\\n font-style: normal;\\n cursor: not-allowed; }\\n\\n.disabled {\\n background: #eee;\\n border: #ccc 1px solid;\\n color: #ccc;\\n font-style: normal;\\n cursor: not-allowed; }\\n\\n.disabled-label {\\n color: grey; }\\n\\n.hidden {\\n display: none; }\\n\\n.video-upload .file-browse {\\n position: absolute;\\n z-index: -999;\\n min-width: 1px; }\\n\\n.video-upload .video-placeholder {\\n width: auto;\\n margin-right: 20px;\\n padding: 6px 15px;\\n background: #eee;\\n cursor: pointer;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n float: left; }\\n\\n.video-upload .obs-video {\\n width: 280px;\\n height: 190px;\\n display: table;\\n margin: 0 auto;\\n float: left; }\\n\\n.video-upload .obs-disabled {\\n opacity: .1;\\n pointer-events: none;\\n border: 3px solid black; }\\n\\n.video-upload .delete-button, .video-upload .restore-button {\\n font-size: 20px;\\n color: #660000;\\n padding: 0;\\n margin-top: 15px;\\n margin-left: 15px; }\\n\\n.complex-component .form-builder-clone {\\n display: none; }\\n\\n.complex-component .image-upload .label-wrap {\\n visibility: hidden; }\\n\\n.complex-component .image-upload .hidden {\\n display: none !important; }\\n\\n.complex-component .image-upload input {\\n display: none; }\\n\\n.complex-component .image-upload button {\\n margin: 0;\\n right: 0;\\n padding: 0;\\n background: transparent;\\n border: none;\\n outline: 0;\\n position: absolute;\\n top: 0;\\n float: right;\\n cursor: pointer; }\\n\\n.complex-component .image-upload .delete-button {\\n color: #F40428; }\\n\\n.complex-component .image-upload .restore-button {\\n color: #88af28;\\n width: 100%;\\n left: 0;\\n height: 100%;\\n background: rgba(255, 255, 255, 0.9); }\\n\\n.complex-component .image-upload .file {\\n width: 160px;\\n height: 160px;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n border: 1px solid #eee;\\n border-radius: 3px; }\\n .complex-component .image-upload .file:hover {\\n opacity: 1; }\\n .complex-component .image-upload .file img {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n height: 100%;\\n width: auto;\\n -webkit-transform: translate(-50%, -50%);\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%); }\\n\\n.complex-component .image-upload .placeholder {\\n width: 160px;\\n height: 160px;\\n float: left;\\n margin: 0;\\n text-align: center;\\n border: 1px solid transparent;\\n border-radius: 3px;\\n padding: 0;\\n position: relative;\\n cursor: pointer;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\\n transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); }\\n .complex-component .image-upload .placeholder:hover {\\n box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);\\n border-color: #eee; }\\n .complex-component .image-upload .placeholder i {\\n color: #888;\\n font-size: 18px;\\n line-height: 60px;\\n width: 60px;\\n height: 60px;\\n font-size: 30px;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n margin: auto; }\\n\\n.complex-component .image-upload textarea {\\n overflow: hidden;\\n word-wrap: break-word;\\n resize: horizontal;\\n height: 35px !important;\\n width: 180px !important;\\n display: inline-block;\\n box-sizing: border-box; }\\n\\n.complex-component-designer input {\\n width: 200px !important; }\\n\\n.same-line {\\n display: inline-block;\\n width: 30% !important;\\n vertical-align: top; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/sass-loader!./styles/styles.scss\n// module id = 336\n// module chunks = 0\n//# sourceURL=webpack:///./styles/styles.scss?./~/css-loader!./~/sass-loader");
|
||
|
||
/***/ }),
|
||
/* 337 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 337\n// module chunks = 0\n//# sourceURL=webpack:///./~/css-loader/lib/css-base.js?");
|
||
|
||
/***/ }),
|
||
/* 338 */
|
||
/***/ (function(module, exports) {
|
||
|
||
eval("module.exports = \"data:image/gif;charset=utf-8;base64,R0lGODlhUABQAMYAAGRmZLS2tGyOjJSSlGyipNze3Gx6fHyOjMzKzGSanISChKSmpPTy9GxydHyipHSGhHyanMTCxGyWlJyenOzq7Hx6fNTW1HSanHyqrGxubIyOjKyurPz6/HRydGxqbLy+vHSOjJyanHSipOTm5HSChHyWlNTS1GyanIyKjISurGRqbLy6vJSWlOTi5HR6fHySlMzOzISGhKyqrPT29Gx2dHympHSKjHyenMTGxHSWlKSipOzu7Hx+fNza3HSenHyurLSytPz+/HR2dHSSlHSmpGyenGZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJDABGACwAAAAAUABQAAAH/oBGgoOEhYaHgh0KLBsRJgUogxkpPyk1NiQPDYicnZ6fhh5CLB8FOxxBqTMagw0YCScJCUU+EjcHGSqgu7yIGSE4DKnDw6utNbIJEsmyRDm4vdGfABUbLTPE2UEckYINNbHMy8qyPkM0HtLqhB0bI9rwxt7Iy+PksrEnPi8Z69IZE3bAGyjPyDdxCJklIPKgn79pCkxgGwiPWysMscbVS6ZRVpELLh528qBDIEWCrOZxVNgRFj4fNtKJLNQBx8ST8VIaxLCRXMueHi9smimoAgycJy2qVMgS4bgTN4bOHCAMKcpjGX3ek2WPq6yoRI14YIHKqraCB5l67dj1hsOw/kYmVDU7TOnOExuBMq0ndKaQt2JZzKWLFpnavFsT+ADsQUOHaB1grGA8oSxhnd/walXr022hEDs+APbkIUIqBKNDDKZIwUIEHY8FqTgAQcCFIms3yypBgxCACROBAAAFQMdEDhEYk6XIAEGICqN903AB4gbuphIWExo7l8GA4Z4UmByWvJBcbSM2CInmgUQOH4k9EzpPrMX6ThmOZuOAg7HqYTsA0YFM0qhAg3X15NDbIGPdRMwHBB5S2UCT+TZhCyiA95AHNsB3w4KDCDYQAzoZksF48KBWCAsBRDgTDSVIJRZwJxXgoiAeyIATcozdCJcgAIiIUwiHVPAOUuX9/ugJfTj1EBshG5jFX3RK4ricVRywUEgGLdAVhJZVhmIaXSZ8ZhlSFvgYpgdHWjVDN2LhQBcFcIZpyH9mASGTEKudtIGdnJRGVwsOsTDofYAewkOfFMUgyAd0baBmoh5AapYMRnRQgFkUIJroISgwCo8JHsSA4kkRfDpSD2aNIEQIZ540gKqd6GgVAyhEadUIFdDKSQyxDsRBCGMiZQKVvhpRwaZWbcCqVSskiwgACJgVQZs46SAtIgGYBYMMQIQr7rjj8rAtqEAEEK666qbrLhATnCvvvPTWa++9hYC7Qbj7itvvvubaGwO5BIs7AbYnaWtvt1bBYIFZ0dbrgX5I/haL07H1VtClVTLYihQFAc+LgoMUDTtAsAMRSa+uSDEQgwIUmIWAhtt6wCxS9mVwM04M9CrvyN6mswJdLZ7rQbVmLSCIBnP6LG0MJJesgCBCxAzxpGHmR1cPDnkwtFkMgOmrDFELK4OGA5Q90AjIVrkoXQyELNbOSCn8aQYmeImAITrQpaKqHqQt5ayFCLExTkn6qoOo2WBcSHFI9lglzQDgeVKJhGSAcDZ/hxjBk0S5IIN/aqdiAs2FCA5PhQyGgA0FE2C9SwYyCNO5IJZnQ8HUnGSANOfKdRcBD7L3jgIMxyUeGMrCeVKB1eSNxuQwDHyAgi68NCaRNsrHtRrX/tO4Hv12V8LDQAEboOCCmh5UoEEA1wjb33aW78D7Jyp8fbsRoLnZgmQhsdIKYBA/pLAOSBPigNJ4kYEIHFAs4vNSQTrwMC8FYX+gkRRkgmfBbegkA8/yEo+2g4LifWJ6lxlEB/LWwSB0TyQNamEQCgJCGU4JLhpgHFLskoEKyvCBD+nA11o4QR92kAMbaNs/AqBDihRRhjtYgAl7EbjD0YWHIfRSDxwVJgAIIQJNzAYNjWiVAIFuTSig20meSKYYTHEmHgiBBVC2nw9msWQwKOG5OhCC7TlRJyvkGQI0oERaoQAIalSFHYXVAxnIzV4eUIQMTDACBpSFhz7kwA7+IacD6KAOX0ASQgxCIIMV4OB+GVgBAlawARbEoAOfnEkgAAAh+QQJDABMACwAAAAAUABQAIZkZmS0trRsjoyUkpRsoqRkfnzc3tx8jox8enxkmpzMysykpqT08vRscnR8oqR0hoR8mpxslpR0enx8iozEwsScnpzs6ux0mpzU1tR8qqxsbmx0joyMjoysrqz8+vx0cnRsamy8vrycmpx0oqRsgoTk5uR8lpSEgoRsmpzU0tSEnpx0goSMioyErqxkamy8urxskpSUlpRsenzk4uR8kpR8fnzMzsysqqz09vRsdnR8pqR0iox8npx0lpR0fnyEhoTExsSkoqTs7ux0npzc2tx8rqx0kpS0srT8/vx0dnR0pqRsnpxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBMgoOEhYaHgh8nMR0UKQYsgxotRS06OyQPDYicnZ6fhiBJMSEGQh5IqTgcgw0ZCSgJCUtDETwHGi6gu7yIGiJADKnDw6utOrIJEcmySj24vdGfAAgdMzjE2UgekYINOrHJy8uyKENGOSDS64QfHSXa8cbeyOPM5MlDNBrs0hoVQuIJnMfkGzNl4hCSU/KAX79pJ1JgExiPW6sMsewhPAhr1gUJDzuBCBKQ4kBW9GThU6mQWawhO9SFLPQByEST8lAWzIBP472NspZA2DRTEAIbOE1aTAmU5cqWsngQnTlAWNKTx8JBdXqQnNSiTEDEQHVVG0GDTdP6TMDDIVgm/hWslh22dKdWjWsVXpjaL4nbsDHkzj1bj+PPlW0JadjBF9QHGy/+gqhAdrBOtPYyHx7ylwkNFIl3gaCQSkFnEYIpWsBAIciHQS4OmBBwYYhhnyZyEAJgIlwPmZ4ABJnogYLksRQZKBCBoPPuHDIO8IiwdlloQSAOLCm3ZAeATydKDjNeKK62Eh2SRHPxoMd2oLkL9W45orEhDUizeQAiGfUwIUd8ANx6SfDwXgScKUaDYQlA4BwhlAkU2W4RzsDCdyGBsIFtPOhGyAHhaLbECpxoIF48phUSQwADzpSDCX+5sGBaKinxIAg34FScZC2+NQgAnx0GFA0YEoIAPEmR/uejJ/PlJc4Q9nVQ1n4PLhnWAbdtlcAOhWgww1xIxGDlIRpc0NJT9BXJhAiVJYVBj2MWNAJHTkZwwCAgADGXBd3EacgOS+SlWQIb6MJEEqmZ1IGfvvCQEJoqZeBQDHPNoB6jh8gwp5A++SBICHN1ACemLvRADqTiOMDEBwaUZcGlmB4yAUtnAhUBCD+caBIFsXICwqYMKoSCD2yWNUCvnECgWV5DPCDlVSUggCwiMhDAoEZLyEDaVSlUiawESizbFaFElPXCtIiAAMO1QOmAZFJBoIuIEafSqEwLNxyh77788luDvJkWUIAMAgtM8MAFcwnwwgw37PDDEBOSbwf6/lK8r8UU//vwD/12vG8F7+IU78MBlGUDBuY+DEJ+SW6bVLcOI/DlVTfkeJUFGjPMwk1KiTBAmyaJ4PCzSTHwwwkWlKWAmuiC0OpVlmrwdNHSLryzyeq8MBeLAIOgwFwLCMLBnlWj+wPPSp0gSBJJmztqnPjNRYRDIGhdFgNiTnsD2hR5cEORA/BNUQneLllDosnlHNbUV42MqQYpgKmAIUHMlWKsIAQ+5bGFJDEzTkoiGwTi2sBciHBJ8milmgD4h5NOXYaszeWDxEDBa29JcEN/gg+TAtOEaB7PhHiKgI0FFbzNiwY3CEO7IK5rY4HaJX49+3FyMUBBDcp3ogEL/jYQFzpgQKdyBPCFIND2eJ2Zlw0DIbBgqGgcSKTN+HClNvc0xrNPiFjlGwYDDNABFkhgVCBAAAcCcA2BUOl/0RMC9T7hArs9b026GsgMIAMS7MTgBTZoYFKIJwgARMgDYVseBUgYlv6BiSAfQBmYkHBBEQhBVNH4APZmuA2daKBcM9zR/1jQPVC4b4YwjBwPkYC/DMWgd0khyA+XuA3+vIUDpLtKXTQgQyqy8CEfsNsSYdhFHnqgA4WLhgYCkEWTkJGKQlhAEaORuc/NZYtAnCERfhAnACSBAm00iw/LeBUA4c5PIGAB43Dyxrmk4AdzLAoIRICBAOrHh3lUig2ISwiwD4jAfhRJIk6Uw4E0xooFR1hkMTDpQCLcQHEqU8QNUlACBpBli130gBA2GITmoC9ifvyBCG7wAiBMUAMvUMALOhCDH3zglw8JBAAh+QQJDABNACwAAAAAUABQAIZkZmS0trRsjoyUkpRsoqRkfnzc3tx8jox8enxkmpzMysykpqR8oqT08vRscnR0hoR8mpxslpR0enx8iox8qqzEwsScnpzs6ux0mpzU1tRsbmx0joyMjoysrqz8+vx0cnRsamy8vrycmpx0oqRsgoTk5uR8lpSEgoRsmpzU0tSEpqSEnpx0goSMioyErqxkamy8urxskpSUlpRsenzk4uR8kpR8fnzMzsysqqx8pqT09vRsdnR0iox8npx0lpR0fnyEhoR8rqzExsSkoqTs7ux0npzc2tx0kpS0srT8/vx0dnR0pqRsnpxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBNgoOEhYaHgh8nMh0VKQYtgxouQS45PCQPDoicnZ6fhiBKMiEGRB5JqTocgw4UCSgJCUxFET0HGi+gu7yIGiJCDanDw6utObIJEcmySz64vdGfAAgdNDrE2UkekYIOObHJy8uyKEVHOyDS64QfHSXa8cbeyOPM5MlFNRrs0hoWROIJnNfkGzNl4hCSW/KAX79pJ1JgExiPWysKsewhPAhrFgYJDzuBGBKQ4kBW9GThU6mQWawiPNSFLPRByEST8lAWpIBP472NsphA2DRTEIIbOE1aTAmU5cqWsnoQnTlAWNKTx8JBdXqQnNSiTUDIQHVVG0GDTdP6TNDDIdgm/haslh22dKdWjWsVYpjaT4nbsDLkzj1bj+PPlW0JaeDBF9SHGzD+grBAdrBOtPYyHy7yt0kNFIl3gaiQSkFnEYIpXshQYciHQS8OmBCAoYhhnyZ2EAJgIpwPmZ4ADJnooYLksRQbKBCBoPPuHTMO9IiwdlloQSAOMCnHhAeATydKDjNeKK62Eh2URHvxwMd2oLkL9W45orEhDUizeRAiGfUwIkh8ANx6SvTwXgScKVaDYQlA4BwhlAkU2W4R0tDCdyGBsIFtPehGyAHhaMYEC5xoIF48phUiQwADzrSDCX+9sGBaKi3xIAg44FScZC2+NQgAnx0GVA0YEoIAPEmR/uejJ/PlJU4R9nVQ1n4PLhnWAbdtlQAPhWhAw1xJyGDlIRpg0NJT9BXZhAiVJZVBj2MWNAJHTkZwwCAgCDHXBd3EaQgPTOSlWQIb6NKEEqmZ1IGfvvSQEJoqUeCQDHPRoB6jh8wwp5A+/SBICHN1ACemL/hADqTiMNDEBwaUdcGlmB4yAUtnAhUBCECcaFIFsXICwqYMKoTCD2yWNUCvnECgWV5FPCDlVSUggCwiMxDAoEZMzEDaVSlUiawESyzbFaFGlAXDtIiAEMO1QOWAZFJDoIvIEafSqIwLOCCh77788muDvJkWUMAMAgtM8MAFcwnwwgw37PDDEBOSbwf6/lK8r8UU//vwDwV37LHAPLyLU7wPH9FRLCifDIsLGZj7sAbrBsuMCtsm1a3D4Kasc0fL8JDjVRdozHC1XA2KAgkDtGmSCA5Pl9BtBDxwwgVlKaAmuhrYZutWEUigQatXNSDtwhO8Zy85PugCw1wsAvyC1vX6tMwKgnCw59josmA2mj3NIIgSVJs7apxZNyW3LDk4BMLaZTUg5rRHhGh4QoUOMsBNSZXg7ZJld/QTrco8QAgIYJdFMqYOmJnR1rT2YMgQc6UYa3ag9yQOE6IXosSXSW5uZZAb2S6LDx7uBjtOSmI3eD9qaqhV7cps4IvI2sg+iAwVvPaWBDhItiBe/szkcDUhl0vYHzYXWLD8LhrgIIz1ggD/KBOelqgAisfJ1UAFNqxfYgs3IE7yrhSoppjAUJxAQODG0xnzZKMBIWgBAkEBAg5IRBsDbIIJfpKg4IjgJgMUi9KI0QADdKAFEhgVCBDAgQBcQyBUGp12yIE7/zXhBYyD35p0NRAaQAYk2JEBDG7wwqRMCDYzYoL0eKGBChwROx8EUxII8oGWSVGHNYjAb6LxgfxJcRs60UC5pLij0TVkJg6UIhVT8MVUZDBDMsAcmAgixjZugz9v4UCi5lIXDVjRjk8MyQcY10Yq/vGLHuiA73qhgQDsMSmGtCMRFmDDXoBgALwDUx/HhShFIwAhTgBQQgUeiRVB+FGKANKen0DQgtJBUidVBFMKgFDJmYBABBkYoTY8EEZOKuUGLajlWz4gggtSZI04UQ4HFompFiDBlcSgoy+J4QEj4EBoEAOBInCQghI0gCx9/KMHiODDITRnfBFrQiiBIAIcwEAIJ5AEDBQAgw7IAAgfQGdIAgEAIfkECQwAUwAsAAAAAFAAUACGZGZktLa0bI6MlJKUbKKkZH583N7cfI6MfHp8hKKkZJqczMrMpKakdIaE9PL0bHJ0fJqcfKqsdHp8fIaEbJaUxMLEnJ6cfKKk7OrshKqsdJqc1NbUbG5sdI6MbIKEjI6MrK6s/Pr8dHJ0hJqcjIqMbGpsvL68nJqcdKKkbHp85ObkfJaUhIKEbJqc1NLUdIKEhIaEjK6sZGpsvLq8bJKUlJaU5OLkfJKUfH58hKakzM7MrKqsdIqM9Pb0bHZ0fJ6cfK6sdH58fIqMdJaUxMbEpKKkfKak7O7shK6sdJ6c3NrcdJKUtLK0/P78dHZ0hJ6cdKakbH58bJ6cZmZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AU4KDhIWGh4IiLDUgFS4GJIMcSEBIRjweDQ+InJ2en4YlTjUmBkchTak9H4MPEQotCgpSSRQ/BxwyoLu8iBwnRA6pw8OrrUayChTJslBDuL3RnwAIIDY9xNlNIZGCD0axycvLsi1JSz4l0uuEIiAq2vHG3sjjzOTJSTcc7NIcFkfiCZw35RszZeIQkoPSgF+/aSxcYBMYj1urCLHsITwIa5YGCQ87lSgSkOJAVvRk4VOpkFmsJDzUhSwkgshEk/JQFoyAT+O9jbKkQNg0UxACHThNWkwJlOXKlrJ+EJ05QFjSk8fCQXV6kJzUolNK1EB1VRtBg03T+lTwwyHYKf4WrJYdtnSnVo1rFWqY2s+J27A15M49W4/jz5VtCXHgwReUCB0z/pawQHawTrT2Mh9O8nfKjRaJd5WokGpB5xOCKWLYUKGIiEEyDqwQoCGJYZ8rfBACsCLcEJmeABSZGKKC5LEUHSw4gaDzbh9RDvygsHZZaEElDkgpJ4UHgE8sSg4zXiiuNhUgnEST0WDIdqC5C/VuiaKxIQ5Is4UgIhn1sCNMiADcek788B4FnCl2g2EKQOAcIZQJFNluEdpAwnchldCBbT/oRsgB4WgmxQuccCBePKYVUkMAA87kwwp/ybBgWipB8WAJO+BUnGQtvjUIAJ8dBtQNGBKCADxJkf7noyfz5SVOEvaBUNZ+Dy4Z1gG3baUAD4VwYMNcTdRg5SEcaNDSU/QVOcUJlSW1QY9jFoQCR05ScMAgJRAxFwbdxGkID1LkpZkCHegyhROpmQSCn778kBCaKkXgUA1z2aAeo4ekMKeQPgUhiAlzgQAnpjIMQQ6k4lwwhQgGlIXBpZgeIgRLZwJFQQkwnGhSBbFyUsKmDCrUQhBsljVAr5xAoFleSTQg5VUqIIAsIikQwKBGUkRB2lUuVImsBFAs2xWhSpQ1w7SIlEDDtUBdgGRSRaCLyBKn0rgMEjswoe++/PKLg7yHRFFAAQIPTPDABRfAJcAMN+zwwxBHTEi+IP7oW/G+F1f8L8RBGOzxxwPz8C5O8UK8REexpIwyLEhsYC7EHKwbLDM5bJtUtw+Dq/LOHS3DQ45XYbBxw9VyNWgLHgzQpkknPDxdQrcR0AALGJS1gJrocmCbrVtRIAEHrV7lgLQMC/EejRsNocsMc7EIsAxb1+vTMk8I8sGeZKP7wtlo9hSFIE5Ube6ocWrd1NyyGOFQCWyX5YCY0y4R4uEJFTrIADclpYK3S05grVa02toAISWEXVbJmD5g5qBcs2VIEXOlGGt2dEKtjBSjF+LEl0lybmWQPdk+hIe7wY6TktgR3o+a2U3ONQUd+DKyNrIPUkMFr731whJ8yVh7Mv5GYE0I5hL2hw0GFii/ywNLzPkVITdQt9E4Unha4gIoHieXAxXgoH6JL0iCVoZCuhlxZAXqQ4DgxtMZ82TDASYggaF2sZgk8E0WBCTECgKlkAQF5wQ3QR5glkYMBxgABCSQwKg4IIEoJKAFBwrd+7DTgbPhTnyHkEHjqieIE+hqIDaADEiwc4Ml0AAFMYQaOTJIxGVIIXq84EAFJoQnEIKpCYTJEqpmKIjerGCCuxCB/q64jcu8gnVGQwgXZfAC34HCgVckCAfAMS5UJYOJRRFL5sB0lldoSVz24GJIPpCoudTlGxmx3cwwaB92iKBxZMTiZZChxFqJaAhujGIACp+ZlD46aZFP/F80SjAA3oHpkJRMIyCTMIE4AcAJFeAkVuiRyEWq5AcyAKOVSkAC03Vykpw6EwWMEAQcjqkEJ9gACbURgknWkkFSGEIHjMkoEZxAIibpYzCp8wNNQIwETPAlMeQIDjRJwQgCaKXEwqKIHbhABQ4gyyH9SAEpBGoII/ABB6gJsVfC4AQ7mAERWCCJGGTgBwKIwgScwE92BAIAIfkECQwAUgAsAAAAAFAAUACGZGZktLa0bI6MlJKUbKKkZH583N7cfI6MfHp8hKKkZJqczMrMdIaE9PL0bHJ0rKqsfJqcfKqsdHp8fIaEbJaUxMLEnJ6cfKKk7OrshKqsdJqc1NbUbG5sdI6MbIKEjI6M/Pr8dHJ0hJqcjIqMbGpsvL68nJqcdKKkbHp85ObkfJaUhIKEbJqc1NLUtLK0dIKEhIaEjK6sZGpsvLq8bJKUlJaU5OLkfJKUfH58hKakzM7MdIqM9Pb0bHZ0rK6sfJ6cfK6sdH58fIqMdJaUxMbEpKKkfKak7O7shK6sdJ6c3NrcdJKU/P78dHZ0hJ6cdKakbH58bJ6cZmZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AUoKDhIWGh4IhKzU+FS0GI4McSEBIRjseDA6InJ2en4YkTTUlBkcgTKk8H4MOEQosCgpRSRQ/BxwyoLu8iBwmRA2pw8OrrUayChTJsk9DuL3RnwAIPjY8xNlMIJGCDkaxycvLsixJSz0k0uuEIT4p2vHG3sjjzOTJSTcc7NIcFkfiCZwn5RszZeIQknvCgF+/aStaYBMYj1urCLHsITwIa5YGCQ87kSgSkOJAVvRk4VOpkFmsJDvUhSwUgshEk/JQFoyAT+O9jbKiQNg0UxACHThNWkwJlOXKlrJ+EJ05QFjSk8fCQXV6kJzUolJI1EB1VRtBg03T+lTwwyFYKf4WrJYdtnSnVo1rFWqY2q+J27A15M49W4/jz5VtCXHYwRdUCB0z/pKwQHawTrT2Mh9O8lfKDRaJd5GokGpBZxOCKWLYUKFIiEEyDqgQoCGJYZ8qehACoCLcEJmeABSZCKKC5LEUGywwgaDz7h5QDvygsHZZaEEkDkQpF2UHgE8rSg4zXiiuthQ+mkSTwWDIdqC5C/VueaKxIQ5Is4EgIhn1sCMuhADcek388B4FnCl2g2EKQOAcIZQJFNluEdowwnchkdCBbT/oRsgB4WgWxQuccCBePKYVUkMAA87Ugwp/ybBgWio98SAJD+BUnGQtvjUIAJ8dBtQNGBKCADxJkf7noyfz5SVOEvb5UNZ+Dy4Z1gG3baXADoVwYMNcTNRg5SEcaNDSU/QVKYUJlSW1QY9jFnQCR05ScMAgJBAxFwbdxGnIDlHkpZkCHegiRROpmeSDn778kBCaKkXgUA1z2aAeo4egMKeQPgUhSAlz+QAnpjIMQQ6k4lwgRQgGlIXBpZgeIgRLZwJFAQkwnGhSBbFyQsKmDCrEQhBsljVAr5xAoFleSTAg5VUpIIAsIigQwKBGUUBB2lUtVImsBE8s2xWhSpQ1w7SIkEDDtUBdgGRSRaCLyBKn0rgMEg+4oO++/PKLg7yHQFFAAQIPTPDABRfAJcAMN+zwwxBHTEi+Pv7oW/G+F1f8L8RBGOzxxwPv8C5O8UK8REexpIwyLEhsYC7EHKwbLDM5bJtUtw+Dq/LOHS2zQ45XYbBxw9VyNSgLHgzQpkkmPDxdQrcRwMAKGJS1gJrocmCbrVtRIAEHrV7VgLQMC/EejRsNocsMc7EIsAxb1+vTMk4I8sGeZKP7wtlo9gSFIE1Ube6ocWrd1NyyGOEQCWyX1YCY0y4R4uEJFTrIADcllYK3S05grVa02soAISSEXVbJmDpg5qBcs2VIEXOlGGt2dEKtTBSjF9LEl0lybmWQPdk+hIe7wY6Tktj5vo6a2U3ONQUd+DKyNrIPcsBHPr6wBF8y1p6MEf5YE4K5hJLNeEIHhPPiwBIcNnYDdRuNE4WnJS6AomQd7PwDCul3wsELSdDKUEg3I46ooH8IENx4OhOkg0RhCEJQnmJ2kAS+RaUxKgiUQhIUHBPcBHlhmVFGEJKyJEAABV8LnxQ4IAEoXIAF7wHdBUnXgbPhToWGkEHjqieIII0wdLIgQLg6QL8QLoEGJ9iO83wyQDy9bxbR4wUHKjAhJ/4kfiRESBRucIwsPY8tGGSBCgzFixDg74dowxYXvfEK1tkuGU0UhAyCIEFPNBAqbizHGleIjHEhDh9xLAoJRDizR91uj64YIaRWgo+vgGUHkxOXk7YoiT5iEXFcceRMHLbgqEJyipJsdBLUnhKF7b2FA02qlShZgMhXGFJQCEkC+pYkAwoWclCg5CMLUMWVfOTOSgDoAQQ0mEentNJoWrodjHAIlv89oXZrySVaZia/HwSBjJjKTi3spcU9coAnqtzIAzvAzDjJwAEMqGAvxYFIS17rBw2BmBA64E57SBMcqjRCB34ZMRlwAApOoM7WZtHOZEQhUENwQg84UM6HkSAIDIBCB36ABCFIIgYZgCcUGBCEhq4jEAAh+QQJDABSACwAAAAAUABQAIZkZmS0trRsjoyUkpRsoqRkfnx8jozc3tx8enyEoqRkmpxshoTMzsz08vRscnSsqqx8mpx8qqx0enx8hoRslpTEwsScnpx8oqTs6uyEqqx0mpxsbmx0joxsgoSMjozU1tT8+vx0cnSEmpyMioxsamy8vrycmpx0oqRsenx8lpTk5uSEgoRsmpx0hoS0srR0goSEhoSMrqxkamy8urxskpSUlpR8kpTk4uR8fnyEpqTU0tT09vRsdnSsrqx8npx8rqx0fnx8iox0lpTExsSkoqR8pqTs7uyErqx0npx0kpTc2tz8/vx0dnSEnpx0pqRsfnxsnpx0ioxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBSgoOEhYaHgiErNT0VOgcjgxtHP0dFUR0tDoicnZ6fhiRMNSUHRiBLqTsegw4RCiwKClBIFD4GGzKgu7yIGyZDDanDw6utRbIKFMmyTkK4vdGfAAg9NzvE2UsgkYIORbHJy8uyLEhJPCTS64QhPSra8cbeyOPM5MlINhvs0hsWRuIJnCflGzNl4hCSc9KCX79pK3RgExiPW6sIsewhPAhrlgYJDzuRIBKQ4kBW9GThU6mQWSwkUdSFLBRiyEST8lAWjIBP472NsqBA2DRTEAIGOE1aTAmU5cqWsnwQnTlAWNKTx8JBdXqQnNSiUkjUQHVVG0GDTdP6VODDIVgp/haslh22dKdWjWsVapjaj4nbsDXkzj1bj+PPlW0JbYjCF1QIBjP+krBAdrBOtPYyH0byV4oNFol3kaiQakiIQoGvYvhQgchpQTIMpBCgAYlhnyl4EAKQIpwQmZ4AEJkIooLksRQbMDCBoPNuHk8M+KCwdlloQSQMQCkHJQqATytKDjNeKK42FT1e85LRQsh2oLkL9W55orGhDUizgRgi2YRcIy6EAFw0MjDhw3sUcKaYDYYpAIFzhFAmUGS7SXjDCN+FRAIHtvmgGyEGhKMZFC9wsoF48ZhWyAABDDgTDyn8JQODaankBIQkPIBTcZK5+NYgAHx2GFA2ZEgIAvAk/kXej57Ml5c4SNjXQ1n7QchkWAbctpUCURSywQ1zLVHDlYdsoEFLT9FnpBQmVJbUBz6SWdAJHD1JgQGDkDDEXBh0I6chUUCRl2YKcKCLFEwIhlMPf/riQ0JpqhSBQzXMdQMTjSKCAp1D+gSEICXM1UOcmcogBDmRinOBFCEcUBYGmGaKSBAsoQkUBSTAgKJJFcjKCQmcNqgQC0C0WdYAvnICgWZ5IdHClFepgECymhLQoEZQPEHaVTpYmawETjDbVaFKlDUDtYiQQMO1QF2QZFJEoItIEqjWuMwRD7ig77788ouDvIc8UUABAg9M8MAFF9AlwAw37PDDEEdMyAIG/lds8cAlQgzExRwr/ENHsYQMMiwQRJzEyCKnfMQRwh6UBMQbrNtyMjnkYCuzLNiHLrgpo4xQFFHMnMwJIDmMgrXiatRBB9sljRALLTz8aI0HOduCbUIrcMGa6G6ANVeasSABD05nxkLGAIdI9UFC6DJ11r8BbCakNyvQhCC0lo0QEh+i+0LTQlPwhCAbOJH1MhAcmqwDX9dNThEOmeo4UFBwgK6QqSZk6CDazYzqCX1nOsF7k6sUtSS2OQ2frw6cuXatPhjCQcs9fSVrbHfZqhIUpxPCAxIZbWmdzn/Ox64sQoSOHY3jeiWjt/2sGZu4TllephMsPHmdIDZ89OML/knwJUMKT61UBNeEtEB6ZtuPL8sJMc3kQBIdNmYD4E5B8amJZz7VvtrLgIIPUECqT2zgaloZCiFwVytZpEBxiAACp8bhIfloJRlQEEIQoHefKCBhfVFpDPkSoqDgBCoZ7aNR2GCBBAigQAIbQJ8UNiCBJ1yABQjiiO1gc798tECGoRCCMko4CCHV6SAECBcH9hcWGySBBifYjoi4IgsFDiI2gqpcLxzgg/YZj1D2CB4UbHAMLdFteIW4XxIKiAgHiE9tZqTiGC+iuy0lw4qweQEHQdHDOlKNBWQkHDLGVStC7bAoJFDhEeuVmTl6AyNQeVJCDhmSKFxQkoZx5AwHwLmRnvjRQcSTBhfVMrllAPIieGlg82YhhD3yYgPusWPLNLmBVwiLUPngABvXQYIWBEtv46AlT+q2SiH0jkkAgBHpDhfIgnBSSyuxRS4atYEXFCaV2GqmK1TnlCIAAYKNyk7j0hTAZtaSdkERAgeA+CcZHPBAdBOHNsFBPWX4YAGubFQQOPBMe2gSLXUqAgeOCTF3AqEJAoCCQoMyT4XUQghN4IEM2AkxEgChBU9ogQ+OEARJxOAIPuBARoFAUXYEAgAh+QQJDABOACwAAAAAUABQAIZkZmS0trRsjoyMjoxsoqRkfnx8jox8enzc3txkmpx8oqRshoT08vRscnSMrqx8qqzMzsx0enx8mpx8hoRslpScmpzs6ux0mpxsbmzEwsR0joxsgoSEoqT8+vx0cnSEqqyEmpyMioxsamyUlpR0oqRsenx8lpSEgoTk5uRsmpx0hoSkoqTU1tR0goSEhoRkamy8vrxskpSUkpR8kpR8fnzk4uR8pqT09vRsdnR8rqzU0tR0fnx8npx8iox0lpScnpzs7ux0npzExsR0kpSEpqT8/vx0dnSErqyEnpx0pqRsfnxsnpx0ioysrqxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBOgoOEhYaHgh4nI00ZOgghgxhHOUc2TBsqDYicnZ6fhiJGIzAIQB1FqTcDgw0PCSkJCUtBFDwGGC+gu7yIGBVCDKnDw6utNrIJFMmyST64vdGfAAdNNTfE2UUdkYINNrHJy8uyKUFDOCLS64QeTSja8cbeyOPM5MlBMxjs0hg/QOIJnOfkGzNl4hCSS6KCX79pJ3RgExiPW6sHsewhPAhr1oUIDzuJWBGQ4kBW9GThU6mQWawgTNSFLORByEST8lAWfIBP472NspZI2DRT0AEIOE1aTAmU5cqWsngQnSlDWNKTx8JBdXqQnNSiTkSMQHVVG0GDTdP6TMDDIVgn/j+slh22dKdWjWsVXpjarwFfsXLnnq3H8efKtoQwMOELqoGCr4NE/LhZdjBXeyvHBXEraEYKxLswBInKuEJgihZYZFjhYdCLAT4EXBjN0acJHIQAmAjnQ6YnABoysuX7ogLlbAwgVDjAuRAAHEoM8KCwdhloQSIMLCm3hAmATy1IHBxaKK42FE1a93qhwsd2oLcL7W5JgrGhBhe2QsZuehiQJgd8t44IOPCwnXWcYTBDYQlI0FwhwXUlC3mDAPADKjWE4Fs/ImgwGg+4EWJAOJjN0gInDSTR0Vr7CTJCABvOhIMJnL2wYFoqJfGgEy+YkFBC1vEFQIxvuTaiYUDN/iAgISWMRk5eDdpXpCHzQalSEPZJcBeSQU6JyAsGFFZiMkwU0gBtPTGYAAheHoJBfmMiScKSTkTI0mUIBUFkmwWJJ+FTyhggCZwbASpLECrwiQgTS+Q1pga69MlgiRT4QKeikvAA5KQPOHRjnAcFESKmhjT551Y7CKJpbS0t0xuph7zgw1ZiKuAEDhQIZ6hKqcJ6yARatQoUBSKo4OeTwlJgg69fOqnmOCnssIFwas6yAbOISIAsqEuooAGXLQUBEraGKPHepEEp8cGdavogJbYRJEHpsAlokEOa82pArpsxVIsPBzmwyyAS+x4yBFQ+LXPEAgUoUcDDDjvc8MMF/pxYcCE7UDyxxhIXUObFIIcs8sgki8ywxihrbLHIGafsMhMBxyJzRzOnIAHJB9dMM81HHFEtM0OMjEG/P8tCBBHJtprCu8zGq7POyzDBRNGykDAuyCUQkLRGG2xw4NawJBryqrvmo4IKtBWtwKXYigauPSlEgCvY0K6875FlJ+ODLqtS/eq+b246L8FO9EB3nqNi28LXP1OghCAYqFj0MhJEyuyZb29kg0OyHh6Uvth6hqOEkA6iXeMqkZA4phOcO29PYkPu7Lzw+YqfwKyyZci3z4rToqJgbhknBd0agkMQujbVJbbzoSuLD6uHdeOpbNW4Y0h0gkm7QqAbEnkK/lBe19lHRbYwBHEmPLWSDWwPooLrConfY9UxzdTAEB8yNgPjCi3Rqy+EYob88DYLHpRgT6DAANq0QiFBBE9gJrAcInZwLGWASD7BCooPenA9XzAhCPAbjnzStJlpMCoZ8vtUS2QWBAmUIAIYaB8GIqAEBaTgPYBqkY3Ohaj2hWJWFCghIUSXu2QQQF4a+J8IZjCEGJBgOyTiyoSIox3ida8xPJBf88YEN4QsYQbHEBO4fre/ISAQRVTM4I+k+MWLCEuK4yFOCzrIi/3haY0uASPkkCGhO43pdyFZIu4Q1qo2egMjhCzb8orChGBZqTCGdAIG+FgowaWlgSFpgKbUsHe4FOhxJ3gZJFeW4AM6RgMD7qHVzyKJgVf0Li9B0MAZ2VEsPx1uHKzkSdJO5YPYTek5JjgX1SjwSbSgKzNtkaCXMNACwoRSI5F0xesMY4MdKFNR2UkbjpaRS39pUAM+BJ4CDbQpcRQTHNuzxQJMCaseaICSLYkmPO9hAw34cmQvwMAOkCCAJfgzKOdUSC18gAQcvCCcIxPBDlSgBBXw4Ag9kIQDjsADDTR0BwhlRyAAACH5BAkMADIALAAAAABQAFAAhWRmZGyOjGyipGR+fHyOjGyGhISipGSanGxydHyqrHR6fHyanGyWlHyGhHyipISqrHSanGxubHSOjGyChHSGhISanGxqbHSipGx6fHyWlGyanHR2dHSChIyurGRqbGySlHySlGyKjISmpGx2dHyurHR+fHyenHSWlHyKjHympISurHSenHSSlHSKjISenHSmpGx+fGyenGZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb+QJlwSCwaj8INZcISqUiEIeKpSrUmFARyy+16jZEIyMQQxA7oGEiaOmjSK4aJEPF873gkQgK5oNEMgGpsbweBfwcvJ3R5jV4eIxkrhYCVB4NCEQmIhp1oGissIxaOpUQbIH5/h5wMMVFCCCmBrJZ/KyARpo57L6u/tH+YMrLAxocvFLq7XgAcEGeetcCvUgmUtpxvMRAKzFwREqrTwdPDxbSH5Z5uBystpN9FCCafxq2drmux15z+laxiLNAiTwgGB+2yreNULVabdQt//TFBUB4BSurYHbu0j1ibf4iC/dJAsaAMDyDeiLzX6lwKlflisjSxzKSMlCE1RnQJkiX+oBMj5CGoePKixqMAXcKMaKzkEAstiH5B4MCpEAAZ7jHlyKYnU5pFUoK9E2EFGqtCcPY0xEBRgAwbhnggsKDACrMrc2aoeTIrmhPxugCQABOtBQIxIBqKkYICjLhIAIxQIMFEtIVjhcw9EyhGCwBeOKj6M7BIBmxoVpwoARqPsxPREGUISuQ0Ig0XpBpBAEHmAbSbacWYHbiRhRFkaK3gK0ZioAV2thDGd6C0XBCpKRQ3NdisCdpDjGZMw2ELAl9LEaGVQWCvTRmR+Hrw6+9QCr5y6dcKBjz6+yKHpbffASC0RgQGeAHkj3X/bWFbfexAoNsCGOXEn24NFrVRThr+tDCPWexMg0gFGYLRm4h5HXCBgTJMZ4tiK2xXIjHjHCUSA7DIEMGJ0oC0AgUzHtFCbL5ZIkF0CIyGTzknsBhkJvWQE+IBKRCEXUwipgbekweCmFctMZQgRD0QrgMYl0Z4cMKSCh7gAnwMpAcSA2KiaUQDMOXUigUU1IhlPinYeYQHcbSJpQYlTJBnTzFMIOgRZA7IyY8SWPjnCt48WgQGsQ14SAwwPJDNPydgKKgCL7DyJRoSkKDqn4FIoCkYAYw6jQEkjOrPm7MWwYJPwahQwAAwDGBsscUSa+wA5fVKRAnKLovsssZ66Oy12Gar7baPDkvtt9Q2iy204JbbQq7+b6TbjroaLKDtr+yuu64KKqyFCAvZRvCBvX+IIAKsh5pqJ6rxxhtICy3wi8YFmTqLgQAAizTBBJxF7AaQ10Zq748UgMivA04KWpal62igwAiKQaSBuJqKx+8JdpCp8Jma7rjROryiYHEwK2xpJwcV28sADJn4wu9z/qGJgMcWU7mMmjsLI6ugOGWZ05HhEfmPOhf4PGMDnQIMCMaZJKgYOxko3RtSeppgRKVerbJeiXNVGJErZA8xwiR//jJ3kA9u/QdQRlhwJZu/yYdfQSzOdXY+U4PxggYpJh5WN+9xwAJR80n5RwohD0FB2LRk1tfC8AjFgndSgRB0PmGCw6P+evK5HIMJGMhIVseUMFhUIbVkkPQRJdQoh8+BC3MCCouD08IKYf8mVQavLtfMkBPJd2XJbqywAAYKRBB6BArA4IAGl/kDnOu3UBB64WsyYD0RalH3hwCpSlCnDIaz8MEFZwCeoXwXnBhEbiomMN18BHijTsCEJxDayHpcxwLdcWEoRKjbnCzFFX70rUik4RwHmtcI9n2QbRroSAQ+oqceieRvuzCcrhpYjnP0g4Zxg2EpWoCNyoFkGCt0zs044Ttm0MNGUUuhNRrItpjE4AQkLEUEYAPCtQBxE3FL0QokYMEY9mmIELliysp0gBPk7T2SyYDWhNaRYmQxJDQZ3n9tIsCBh8hkITYcIzBSUAI5lugwTENRB3WExQ1e4gQSeN+MPBABClgGWG18yePkUIAo2gkFEmChEyM5pxRI4IzYYmQJXBCAGJgyDZxUDgNO4IIReECR2bJACRzjSBWgYAgR6IAKTCABGFCANQ0KAgAh+QQJDABMACwAAAAAUABQAIZkZmS0trRskpSUkpRsoqRkfnzc3tx8jox8enx8oqRshoRkmpz08vRscnTMysx8qqx0enx8mpyMrqx8hoTEwsRslpTs6ux0mpxsbmxsgoSEoqR0hoT8+vx0cnSEqqyEmpxsamy8vrx0joycmpx0oqRsenzk5uR8lpSEgoRsmpzU0tR0goSkoqSMioxkamy8uryUlpTk4uR8kpR8fnx8pqRsioz09vRsdnR8rqx0fnx8npx8iozExsR0lpTs7ux0npyEpqR0ioz8/vx0dnSErqyEnpx0kpR0pqRsfnxsnpzU1tSsqqxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBMgoOEhYaHgkMbGUZARDgHgxgOMSohSwMoGIicnZ6fhhgYMjoVBEkLqUkygx0qQrBCNhYGAQNDIKC6u4gNIhckqakVw6uSSrHJsBYUMLm80J4uNyc/KcILxNmqrIIdyMrKNgYsuNHnhEMywcLa2NlJkYIY4OHh5Jvo0L5H7f7E7ox5q2cvnAln+kABWHEB1baH7wDGO1awog0KCAAk5IRBBDt3w7aBXCCQybeKKE2M0LixUAMdqa6FHCkSXjcm9FCitBGgQ8tBJRIskAmxJs2JA3XqpODz5wGi2gC+M0ry5kmlFV/ka+lCxjWp2MBGLJkTqz0HW38y8Rq2qNSA/lYJmoVFIS26Bg0IuXhatO9MsnLN1iUEIkheXg0S6DgsCMCJfzP7lrw6VwjaQl512O2E4UeqxZiJTh1W4UiPGicgDALQYgkFJT6waiUsI2aPZ54AiPi6APQgEAeSvBWZhMYGJEM4ueiAgoUKBhUvr+YbMwjLTivYCYvAWNAJ0al+9MhxXSGCENCVDSbEdlsKEt0PNbhQ83P3vcLhnbiBGxqAGejFsp4gINQW0nabEbJbRKlwp5eBP2zQHzoujGCBZXaxBRU8K3DSQD+8geTbIAeckKA+GLCQFgAGHogNDQm68JiLNY3IhAsuqMUJcKhERZUM5QlSgmc+0uSgjp98/ufPaAtcEB8TEWwIGTE2IlnIXktGJlUQLnkGEU3CfGAlIhjQ5w6YwiRQ3oIuDkfMDxOOOUgDH2lZUwo7SGLmQ2hGKCcnQTiEJjYi5MgEnUy62UOQf0oC05T10XCYgcON9sMNjXIypF9tVdAhE48yONxtmSLiQg+QjlQEEzdUECKT2eRQKicTgMfgMCBsUCdVANEwq3I/uMlnNinkkAFvsJKUwa+chJrsAhGK0ClVP6jG7CEl5CesNkkg4QGNo/Xw5LVMQNBPstqIgMOZvC4gArmHYCBAu2fSgAO4U60KryHSwuoOEQoUgEQBBA88sMAEF/DpvoSsgLDBCBcsMJcM/lds8cUYZ3xxwAl37LHCGefw8cgFBHHvNSgPpTLKEWRsxMowp5wCEUQ8K4wRGMtrcypAAEGvSCmMe625Mse8TRBB7LwACdZWXAIBP2uTQQY9/pzCBhc/Omh4G2zgpc1qVtzZtMOlAEGrURO7MLx8bZ1KDzk6+yyp8JaZak367pD2m5jCu0LVz1aAxDznBr5ABIYy28DXPy8AoyCnpq3Ku9ey5TYxhZLokL/DkND3rBNsvm07WEtCZLsQnfDrfPi21Ru/6LZT5Z97bVgpPKUTcoM1VPkze6ZKJipMD5//1uK0vaXlwokJlbeXsDNRHsoRKYgljGaYXdD0TysYcd8J/iOBRAOjg2wgukjYDyJjKiQEEWc0DRjhWZUyAE6crBztiU36kLdNkg4leB8oMOA1ohypfzIByQkSh4gc1KkCOigeE4KHjST0YAfMi1cQfnC+3sQHfP74QQYbE6jrKY9SdxrKDyJQAghggHwYgAASEpACQU3FRl3ZXITIZwgQoKoCIgzNaEZCgCNUQAT4Y0KBjCAAEqAigZFp0H2CU4EkSA8UL+HfjYJXKanwpiQNoMEQyeZBzCTBCAL00BRtRSOwgPEBvavPOw54oxWMEBT1s1OWsJGCm2BAjLcaFlh+p48C4Qssbnrjq+Q4FSoJ7RxBEI31kkUWQA7LTiOhY0JesdKX0XnxJg14ACJbVxML3nEXGOhB1dxWQT/CkXOT/IEI0oiOXGnHk8Rx5ehEtYAe5M5KAKDG5nZWAVBacowggSAGGDgmDKxAjF2szxt3ORMa5ICZjQIO42hCDLK8Ungk6YEIeNio5W1AB+dLpjGrF0cIKuCUmdqBCI4pFTAeMyw0EMEvMba8HBRBAFV0iD1FEqweFOEGLiAnxkCQg+OIQAdEyNM8JEAEHYgACRsgz5gCAQAh+QQJDABSACwAAAAAUABQAIZkZmS0trRskpSUkpRsoqRkfnzc3tx8jox8enyEoqRshoTMysxkmpz08vRscnR8mpysqqx8qqx0enx8hoTEwsRslpScnpx8oqTs6uyEqqzU1tR0mpxsbmxsgoSMjox0hoT8+vx0cnSEmpyMioxsamy8vrx0joycmpx0oqRsenzk5uR8lpSEgoTU0tRsmpx0goSEhoSMrqxkamy8uryUlpTk4uR8kpR8fnyEpqRsiozMzsz09vRsdnR8npy0srR8rqx0fnx8iozExsR0lpSkoqR8pqTs7uyErqzc2tx0npx0ioz8/vx0dnSEnpx0kpR0pqRsfnxsnpxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBSgoOEhYaHgkwfHU44Rz8HgxwLNS0lEAMsHIicnZ6fhhwcNj0VBFEMqVE2gyEtS7BLOxgGAQNMJKC6u4gOJhsoqakVw6uSGrHJsBgUNLm80J4yPCtJLsIMxNmqrIIhyMrKOwZEuNHnhEw2wcLa2NlRkYIcSOH2S+Sb6NC+T+3/xNwZ8/bqnj0VzvaBAvBiA6ptEN8FjHfM4L0dFBAAUMiJgwl27oZtC8lgoJRvFg2qOLGRYyEHPVJdE0lyJLxuUuilNLgjQAiXg1JcYDAzos2aFAnutEjhJ9ADRbUFfHe0JE6dS+/N0OdSho1rU7GFlWjSVVZ7C7gClfJVrNGp/gKvgjsbi4JadA4cEJIB1ahfmmXn0rVLiIQHp7scXOihdxCAFQBp+jWJlW7aQieMlLjbiUOSVIwLtaUqtsKTITlWSHA8AgIFDUaWbi18YscSEAFaegJgAiyD0INIHIgCd2SUIh+gMOEkIwQLIi0aGLwcnIZ0WA0G6Ob0gp2wB40HrSgqLMkQINs/AUBQ4noywoROuIdVY3knBxtsgg4vhS9xeCvw8Ew0ANzQXl1qkUCDbeGUMOAhvUmUCnh72ZBKEh88iI4MJ2CwBHWDyHdPAx5w4oA/voUE3CAHrMCZQhwQkWBtFhmgoSAyQCZSZCv2J8NanCg43z0nHJLCZ1L9/kUhkJ9YMOQ9SCA2yANRuTVVj0wWIsOCWYFAw0ufRVSTMCJkiQgJFNDVQiER7lgVMUncaOY8Kpy1wwiS5BfWmAxgOCcnImblwzMOeCchXEOk92dwaWZVgz4WVkVaEjwsyskNTxoEgyAxUVUcMUPIaakUJJRwFgRS8FBBiqQNA8SonMDA4E4tkPABSJLBVQSsQdazlApMdOBbq6p0wCsnEGTVwAgmWFlVEqsde4isS4FwQgZutjoEf9IOgkANWUHwgzufbmNCt4fIsEBWFPyQLWlNoHtIAFnpoEABUBSgb7754qtvAS/Ia8gIPgTgQ8EII2ywDxYI7PDDEEcsccT3/v5r8cUASwwExhwXoIS714RM1MghPyCxEySnLLILRxxB7DtORMyBAC9jgwMObx7lArfoSvDEyipvo4QSNQuDQrQOp0BAzmF10AEq5U7lwgcQd8pneR98EGbRFyh6rGfOFueCBKoyPZILAQvc19XCDPFjp0UzEKq8HOSXa1XxShGE2VNRKu8LUBddARTz+CM4Aw/8KK0DW5vNQBH6yDAE38JEca60bbFtruJSDFezVChUyusEDzmeDdWSIJlzRCvwit+7Ev5mSLPEkovln3xVWVwxqBPCgzWSinS7pePV3rbohUV6KGhqyfAiR9vxVS5Nl4fy81jC9HCXDRsgDdQL/k7wlyNJIRXhtSAflA6X9nvpiIISovLigBOfYWlD4IC92pGe77A/SO7biEIPUhA/T3BAa0VZEo76YpQVcA4RQMBVBXqAPEEU7x1RGEIQnocIDighCerbTyFWQK4+cdAxSiid/3AUKbERJQkPSIEEOOA1DkgAChdwwUNq0iOvlA5D5ysECSZXgSRsjzz/wAYBnlABE+iPVDZwggBQgIqZJMkdCuzPcCpgOfn1YIX9ueDupBZAnDigCKQJSXHsFwUnFPAQedkLAz3lLKsMwgERCB72viO+F5xQF/e7WxLf4YKroDF2ENnd8PZBghbS8YrGMWMEWKWfNP6GZ/tQAnn2vEgsyhwykZHZYxYVAhO/RM0mhbxjBPYEO8lk8I+84MAQAqc5bFAmj8bbYxJM8MZo2Mo7p4TLLU+5vCH0LksAoEbp4lYBM37SkmrU3gPNxIEXoHGM+jEJHolJkyIAYZqLEk7jakKMW75MGxk0QRBxd8AehFCNznTB9LLRAwXAclRBMMEzp6LNZ4qlCCY4ZsScB4QmCICLD+nnSJJQgSE0gQcyWCfESACE5JigB0cIgiRicIQemAAKH0CPmQIBACH5BAkMAFQALAAAAABQAFAAhmRmZLS2tGySlJSSlGyipGR+fNze3HyOjHx6fISipGyGhMzKzGSanKSmpPTy9GxydHyanHyqrHR6fHyGhMTCxGyWlJyenHyipOzq7ISqrNTW1HSanGxubGyChIyOjHSGhKyurPz6/HRydISanIyKjGxqbLy+vHSOjJyanHSipGx6fOTm5HyWlISChNTS1GyanHSChISGhIyurGRqbLy6vJSWlOTi5HySlHx+fISmpGyKjMzOzKyqrPT29Gx2dHyenHyurHR+fHyKjMTGxHSWlKSipHympOzu7ISurNza3HSenHSKjLSytPz+/HR2dISenHSSlHSmpGx+fGyenGZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gFSCg4SFhoeCTh8dUDlIQAeDHAs2LiY8Ay0ciJydnp+GHBw3PxUEUwypUzeDIi5NsE09GAYBA04loLq7iA8nGympqRXDq5IascmwGBQ1ubzQnjM+LEovwgzE2aqsgiLIyso9BkW40eeETjfBwtrY2VORghxJ4fZN5Jvo0L5R7f/E3Bnz9uqevRXO9oECAGMDqm0Q3wWMd8zgvR4UEABQyInDCXbuhm0LyWAglW8WDa5AsZFjoQc/Ul0TSXIkvG5U6KU02COACJeDVFxgMDOizZoUCe60SOEn0ANFtQV8d7QkTp1L79HQ53LGjWtTsYWVaNJVVnsLuAKl8lWs0an+Aq+COxuLglp0Dx4QmgHVqF+aZefStUuohAenux5c+KF3EAAWAGn6NYmVbtpCKI6YuNuJg5JUjAu1pSq2QhQiOlhIcEyCBwUNR5ZuLYyiR5MQAVp6AnACLIPQg0ocmAJ35BQjH6Q44TRDRIsiLhwYvBy8hnRYDgbo5gSDnTAIjQexKCpMCZEg2z8BQGDiejLChFC4h2VjeacHG2yCDk+FL3F4LPjwTDQA4NBeXWqVUINt4Zgw4CG9SZQKeHvdkIoSHzyIzgwoYNAEdYPId48DHnDygD++hQTcIAewwJlCHBSRYG0WGaChIDNAJlJkK/Y3w1qcKDjfPSgcosJnUv3+RSGQn1gw5D1JIDYIBFG5NVWPTBYyw4JZhVDDS59FVJMwI2SJSAkU0OVCIRHuWBUxStxo5jwrnNUDCZLkF9aYDGA4JyciZsXEMw94JyFcRKT3Z3BpZmWDPhZWRZoSPizKCQ5PGhSDIDFRVRwxRMhpKRUlmHAWD1T4UEGKpA0TxKicxMDgTi6U8AFIksFlBKxB1rPUCk504FurqnTAKyc8ZOUACSdYWZUSqx17iKxLhYBCBm62SgR/0g6CgA1ZgQCEO59uc0K3h8ywQFYUAJEtaU+ge0gAWe2gQAFSFKBvvvniq28BMMhrCAlMBMBEwQgjbDATFgjs8MMQRyxxxPf+/mvxxQBLHMPBHHfssQXuXiMyUSSLDIHENNSLBLHvQBFxCesuRUEObx71ArfofpsVD0uwjE0K0TpM7U7WdoBKuVO98AHEICgbwwdh+szABYoeW4IBjjqhas1wvRCwwB7MmtIOuXQqNQOhygvzWQ0IIgTXNlEq79BEtzCPP1ITA8GP0nKww1lJ6DMDEXALdK60PITQJQ+6DeezVClUyisCmY6IAyGewR0RC7z6bZkhzRJLLpZ/Kqh4tQMY4oM1kopEuqVOLuUCZyVEeihoas3wIkfbCblTiYdwEMULYwnzw103bBA0UDBAwV8JFogdjgtVC/LBQ0cdv5eOKSwhKi/+D0DxGZaBhoOB3R3p+Y72g/Dl2xQ/qPC9JxxAXdSSONIYDhPVDxIErhX4geTEQx5VEEEIu0MEB5agBOxpA0uxS0bg1LME7LEPR5EqjsiUAAEVSIADVeOABKRwgRc8pCY9KkH5joC+T5SAcBVQAvIK+C4CRKECJ3iVIGoHBQGkABUzSZI78EcFAFhAcSFoW2J+cMH+jCdXknkfTh5gBNKEpDjkOwII5neIvOylL1Z0llUG8YAItK5433keCbgIihucUD/vkslVqiihHRXnNzhTSO3iuKejmKSMrIKjp/AIpCWQB43EogwdIUKu1k0oj+eAiV+QZpMXTDECffyLZKalQIQERoMDRDiaJltFGTOKTpB9OgEboWEr71ASLqWk5O2IsLQ5AYAa2DtbBaa4yDBe8Xh8+xMHYFDFO97xj5isGUCMEIRgjko4UfsLMUrJMm1w8gT9+5PuPvADB76Fl8Q74w8U4EleCeEEvZzKH3spFiOcoJYT010QniCACkzhIesciRIqQIQn+GAG2YRYCYKQnBP8AAlCkIQMkPCDE0jhA+gxUyAAACH5BAkMAFAALAAAAABQAFAAhmRmZLS2tHSOjJSSlGyipGR+fNze3HyOjHx6fGyGhMzKzHyipGSanKSmpPTy9GxydHyanHR6fHyqrHyKjMTCxJyenOzq7NTW1HSanGxubGyWlGyChIyOjHSGhKyurPz6/HRydISanISqrGxqbLy+vJyanHSipGx6fOTm5HyWlISChNTS1ISmpGyanHSChIyKjGRqbLy6vHSSlJSWlOTi5HySlHx+fGyKjMzOzHympKyqrPT29Gx2dHyenHR+fHyurISGhMTGxKSipOzu7Nza3HSenHSWlHSKjLSytPz+/HR2dISenISurHSmpGx+fGyenGZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gFCCg4SFhoeCSh0bMixMPweDGQo0KyQ6AyoZiJydnp+GGRk1PRoETwypTzWDICtJsEk7FgYBA0ojoLq7iA8CGCapqRrDq5IXscmwFhQzubzQnjA8KUUtwgzE2aqsgiDIyso7BkK40eeESjXBwtrY2U+RghlE4fZJ5Jvo0L5N7f/E3Bnz9uqePRTO9oEC4AIDqm0Q3wWMd8zgvR0UEABQyCmDAHbuhm0LyWAglG8WDaIosZFjoQc9Ul0TSXIkvG5Q6KU0uCMACJeDTixgMDOizZoUCe60SOEn0ANFtQV8d7QkTp1L78XQ5xJGjWtTsYWVaNJVVnsKuAKF8lWs0an+Aq+COxuLglp0Dx4QggHVqF+aZefStUtoBAenux4s6KF3EIAUAGn6NYmVbtpCJYaQuNspQ5FUjAu1pSpWQxMjN1JEcPxCB4ULQ5ZuLVxiR5IPAVp6AiAALIPQg0YceAJ35JMcHZwo4QQDhAohKxwYvBx8hnRYDgbo5uSCnTAIjQelKCqsiBEf2z8BQEDiejLChEq4h0VjeacHGGyCDg+FL3F4KfDwTDQA2NBeXWqNMINt4ZAw4CG9SZQKeHvVkEoRHTyIDgwlWJAEdYPId48DHHDygD++hQTcIAekwJlCGQiRYG0WGaChIDBAJlJkK/YHw1qcKDjfPSUccsJnUv3+RSGQn1Qw5D1EIDYIBFG5NVWPTBYCw4JZfTDDS59FVJMwIWSJyAgU0LVCIRHuWBUxRdxo5jwonLXDC5LkF9aYDGA4JyciZoXEMw94JyFcRqT3Z3BpZkWDPhZWRVoRPCzKiQ1PGgSEIDFRVRwxRshpKRQjkHCWDlDwoEGKpA3jw6icAMHgTiuM0AFIksGVA6xB1rMUCkps4FurqmzAKyc6ZOXACwJYWVURqx17iKxLfVCCCG62agR/0g6CAA1ZefCDO59uI0C3h8CgQFYU/JAtaUuge0gAWeGQQAFOFKBvvvniq28BLshryAtIBIBEwQgjbDASFQjs8MMQRyxxxPf+/mvxxQBLDMTBHHfscQXuXiMyUSSLDIHEMdTLBLHvyBDxCOsuRQELbx7VArfofpuVDkewjI0J0TpM7U7WboBKuVO10AHEHigLRAdh+szAAooeO4IBjiqhas1wtRCwwBzMmhIOuXQqNQOhygvzWQ0IMgHXNlEq79BEqzCPP1ITA8GP0maAw1lE6AODEXALdK60OnzQpQ66DeezVCZUyisCmY5oAyGewR1RCrz6bZkhzRJLLpZ/Kqh4tQMYwoM1kopEuqVOLrUCZyNEeihoasHwIkfbCblTiYdk0EQLYwnTw101YBA0UAjokGAFp9+zQtWCdPDQUcfvpaMJR4jKSwb+OsQGoiDW3WOB3R3p+U72g/Dl2xM9nOC9Jxm8gAODH8AnyAg0hoME9YPwAa400APJiYc8qjDCBHZ3Jg7gIHoIKoQQhhQ49RzheuzDUaSKI7IiQOAEEchA1UaAAA4EgAZiS8YHgpCg8sFiCOj7xAgIp4EiIA+B7yJAEzQggFftbwYxwAEKZfM8xX2gbYnpQQb7M55cSeZ9cqELLMYHhcx4YH6HyMte+kKakIQlMFK8jf5I9QIsgqIGDynOP6jSgqv4KoxjdEnt3qWfT1FGMHRZIQOjcQTyFI9lYAxjLGYDFJj4BWk2aaMk3hjGD3hgj9DIgBGO9hdiUYaRdBlCA8yNCA1beQeRcLmjIImwqTkBgBrXO5sGcIKSTCJBSnPKgAtyICk1XlJNQOAkUIQTtb8QoywFSckHcFBGdOmuAz24XvFWuciUOEABHIAkrCYgAFpGRpT2+AARdHC5ifUnAz5YggY08ISHBPI2Q6ABDoSAABF60xAj8EFyBNADJkwgODFQQAw8MAMggACA+wgEACH5BAkMAEwALAAAAABQAFAAhmRmZLS2tHSOjJSSlGR+fHSipNze3HyOjHx6fMzKzGyGhGSanKSmpPTy9GxydHyanHyurHR6fHyKjMTCxJyenOzq7NTW1HSanGxubGyWlISmpIyOjHSGhKyurPz6/HRydISanGxqbLy+vJyanGyChHyipOTm5HyWlISChNTS1GyanISqrHSChIyKjGRqbLy6vHSSlJSWlGx6fHSmpOTi5HySlHx+fMzOzGyKjKyqrPT29Gx2dHyenHR+fISGhMTGxKSipOzu7Nza3HSenHSWlHSKjLSytPz+/HR2dISenGyenISurGZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gEyCg4SFhoeCSBwkMBpLEAeDGAk0KSI5AygYiJydnp+GGBg1PBlKSgupSjWDHylHsEc6FQYBA0ghoLq7iA4CFwWpqSqppqyCGBaxy7AVEzG5vNKeLjsnQ8TC2Rmqx0wfyszMOgZAuNPohEg1wcLcwu5KkchC4vZH5Zvp0r4z7v/c3i1Q4c3VvXsmoO0DBYDFBVQL3gksFlHVPCbJDt7TMQEBgIWcMAhoN7FiwH+rWoXTaM/EiI8gCzngMQwgvH8RU9JjeVBHgA8xB8koMRAnxZMUF8iTtJKnvQlAgx7IVtHkzaoUC9Zzeu+FvpguahBDavNoN6Zc7SX4GpSJWHj+ZLHC0/mtadojE9imc+CAkIupcrGeDEgXw9a7eNmG2BB1l4MSPPoOAnCibMm5BV8hXltoRBARejthGJIqcqG3VwcvGDJEwYkIk1vkmCCkglOvhEKM0HHEQwCYngAIGLvA9KAQB5SoLqaEhwAkOzi5+GADSIoGBzkfj4EdVoMBwDmxaCfsgeRBJ6gWmyGgR/hPLhCI6L4sb2f6sGgg8eTggtXS5zHxl3I5nbDDe7uEIB999m3HmzgiRIPIcDe9Y55fNaQyBAcITqObbdoNMgJ+yzSwAScO+EPcRMYNcsAJoS2EARCK7aaRARL6VVlSZrUooAttcRICdzyNcIgMpEn+FNgCFwb5CQUk3iNEY4M8QNVEqvnoZCEuxPAgTx7EIBNpgl0lDAhbIhLCBHelUAiFPKrGzRA5pkkIBiakpUMLkviH1GUacmAnJyOmZUQ0DpBXoVUZENHhoEysmRYN+mTIqJmrRQcpIjZEeZAPgtCU2qVE1LnpcSKklQMTO2SwIqYR9XAqJz58yVIKIXBAklmDlTCrkIexZAISJBAHq1Ik/MpJDlw10IIAcF06J2zKHlKrUx6MsAKPmBIRYLWDIEADVx1AIJCcFQkA7iEuJMDVBBBwa2YS6x4SAFc3KECADAT0yy+/+/ZLAAv1GtKCEQEYgfDCCydsBAUFRyzxxBT+V0yxvgJnrPHAFfug8Mcgh0xBvMSUXJTJKjxQ8Qv4LnEsPDBQHIK7Tk2ggbSMqvDtuuJylUMRLwtTALURXwvmCCSggu5JKggqcQfN+sABmUGX8OisIRjAlX6t4jyYCgQXvIGtGt2Qi6hBL1BqvTOnxYAgEnht1RCagms0mCgg40/Q3DwAZLUY3JCWEPq4QITcAimhbrU5eMCVBzkAl9zLEhVQ96kIeHpPAzbcmSTOWJ3wa+B3JWAItLCeq+WgQzqO7QCG7IDNpf+svimUTqUQWgiWLvoOD2y5YGpM4Q2p+TInHoLBDCrEVZpeMUDlJAI5KEaB6/ekcDUHEDEKvF/+1x9RAQXDS4NBDkEcEaIgRNpTQd4h+XnT94O4UKh3E9hQ/icYtHDDgx5okCB0QzZYGOFqgujBrjLAg8sxgQLpY0YDRNCCv+liMSkooAAFAQQSEe4TAChC9+g3QC8dpAEG6EALIlA+BW0gADQoICw88APFtO8IQYDfJ0JwuAwMAXrHW4YOaHCDFxBtSC+4QQxvYz3HeeBtjuEBCSNFARlqRAfJqwti1KcXz3Rgf70IkP2CeA8PZNEwWwygYloARl3gbotYbIVmtrjBmAzJijyJ40622JsaBmkDZNSIB/iEDLsgBjdB+QDL+CiLLIKDkb3pQIzSgYEABNIeetQiH4OPwIA2emgA40LMICURrMGByk4AQMIELhmLTGbkLkEwApXsFIIWaI0rmXxkWlLgA0+2RTcWwN5BzEhKbN2AjfX6wAgyeEVHznFzCdjAJKt1sFuKw5WljIUHhJCDzlksUh9AQQ5SYIIGuG6UhdRmEIgIBARgAIETS6UPRpCDF/xAhxh4QQJe0IEY+OAD8ERHIAAAIfkECQwASwAsAAAAAFAAUACGZGZktLa0dI6MlJKUdKKkZH583N7cfI6MfHp8zMrMbIaEZJqcpKak9PL0bHJ0fJqcfK6sdHp8xMLEnJ6c7OrshIaE1NbUdJqcbG5sbJaUhKakjI6MdIaErK6s/Pr8dHJ0hJqcbGpsvL68nJqcfKKkbIKE5ObkfJaUhIKE1NLUbJqchKqsdIKEZGpsvLq8dJKUlJaUdKakbHp85OLkfJKUfH58zM7MbIqMrKqs9Pb0bHZ0fJ6cdH58xMbEpKKk7O7sjIqM3NrcdJ6cdJaUdIqMtLK0/P78dHZ0hJ6cbJ6chK6sZmZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AS4KDhIWGh4JHHCUvGkoQB4MYCTMpIjgDKBiInJ2en4YYGDQ7GUlJC6lJNIMfKUawRjkUBgEDRyGguruIDgIXBKmpKqmmrIIYFrHLsBQSMLm80p4tOidCxMLZGarHSx/KzMw5Bj640+iERzTBwtzC7kmRyEHi9kblm+nSvjHu/9zeLVDhzdW9eyag7QMFgMUFVAveCSwWUdW8JckO3sshAQGAhZwwCGg3sWLAf6tahdNoz8SIjyALOdgxDCC8fxFT0mN5MEeADzEHySAxECfFkxQXyJO0kqc9CUCDHshW0eTNqhQL1nN6z4W+mC1oEENq82g3plztJfgadIlYeP5kscLT+a1pWiMS2KZz4IBQi6lysZ4MSBfD1rt42YbYEHWXAxI7+g4CcKJsybkFXyFeW2jEDxF6O2EQkipyobdXBy8QIkTBiQiTgeCQEISCU6+EQozIYcRDAJieAAgYu8D0oBAHkqgulmSHgCM6OLX4UMNHigYHOR+HgR1WgwHAObFoJ+yB5EEnqBaLIYBH+E8tEIjovixvZ/qwZhzx5OCC1dLnLfGXcjmdoMN7u4QgH332bcebOCJEg8hwN71jnl80pCIEBwhOo5tt2g0yAn7LNLABJw74Q9xExg1ywAmhLYSBD4rtppEBEvpVWVJmtShgC21xEgJ3PI1wiAykSf4U2AIXBvnJBCTeE0RjgzxA1USq+ehkIS3A8CBPHsAgE2mCXSUMCFsiEoIEd6VQCIU8qsaNEDmmSQgGJqSVAxCS+IfUZRpyYCcnI6ZVRDQOkFehVRkM0eGgS6yZ1gz6ZMiomatFBykiNUR5UAWC0JTapUPUuelxIqSFwxI6ZLAiphHxcConFXzJUgohcECSWYORMKuQh7FkwhElEAerUiX8ygkOXDUAhABwXTonbMoeUqtTHoywAo+YDhFgtYMgMANXHUAgkJwVCQDuIS0kwJUEEHBrJhLrHhIAVzYoUIAMBfTLL7/79lsAC/UaAkQRARSB8MILJ1zEBAVHLPHEFP5XTDEORXSgsMYKZ7xxETVUXEHHJJes8AR5OuVDxfc6ZYNdB7lAcQg2vMumUynEWK24XOHArFMUhCwxELYelO0AHnBlpMQdNFsBCrY5lcCjs4ZgAFf6YXC1Uw0gEDHR+ObiQloBmFq1u1wxIMgGaVHg9brXYotCIlHfZjakGNTMVRD6hDB2s2JWi0PRRuMA3ACEH2SCzml2mlYDQgti9V0rz4qBZlwlYIgPaYW4aQiIc+XBAIYcMS5PDSrrg6fi5GwIAJyzlHqkdy8UHgCFsnTiIXhq5PkSMEDlZAQ41Jh4LClQHbo9uB1nIwUT1L4LBjhg93vu4lAwd0hoM+P5kP70NSBBDdKLBoQND3ow+5BJi1ME1YIgUDcssy8BpTgNiAAEkAlukALh9bvfMvj2Cdx9aX0waJ89GmCADgAhAndT0AYCMIPjeaAHNaLPD7YHn79d7wdOycEMbOACakUKBi6wQQVvwxYATCBpHlDb9CTQPMnZ6C452F1dEGOED3agfIb4gGKIhBgP6NAwPFSfYoAAxCexjiU5bAXmEFM/kAzpeDyJ4k542BsMBmkDTwQTn5ABs7vUECQf+BsXtbhDLvamA4ybBgYCEMae6BAcbvwBA5rIC9Cd7i4eGCNGgpWWIIDKTgA4ggTqOI4jllEjPygClewUAiBsLYR3fOQ9UmVQAT7GRDcWUKDRjkjIe3jABkys1wdG8D+NsNEgGmlAAjYQx18d7JKNlEQpYeGBIOAgchULwQdQgIMUmKAB7QskWnj5gxH6AAEYgN/EElmBEeDABT3gIAZckAAXdAAGFfiANNERCAAh+QQJDABFACwAAAAAUABQAIZkZmS0trR0joyUkpRsenx0oqTc3tx8joyEgoTMysxsioykpqT08vRscnRkmpx8enx8rqx8mpzEwsScnpxsgoTs6uzU1tR0mpxsbmyEpqSMjoysrqz8+vx0cnRsamy8vrxslpScmpx0enx8oqTk5uR8lpSMiozU0tR0hoRsmpxkamy8urx0kpSUlpR0pqTk4uR8kpSEhoTMzsysqqz09vRsdnR8fnyErqx8npzExsSkoqR0goTs7uzc2tx0npy0srT8/vx0dnR0fnx0ioxsnpxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBFgoOEhYaHgkEoFCwZNxAHgxgJLycfMwMIGIicnZ6fhhgYMDggREQOqUQwgx0nQLBANBUGAQNBHqC6u4gNAhcFqakpqaasghgWscuwFRItubzSnio1JT7EwtkgqsdFHcrMzDQGOrjT6IRBMMHC3MLuRJHIPeL2QOWb6dK+Lu7/3N45SOHN1b17JKDtAwVgxwVUDt4JLBZR1bwiyQ7eoyHhAYCFnDAIaDexYsB/q1qF02iPRIiPIAs1wDEMILx/EVPSY3mQRoAOMQcRGDEQJ8WTFB3Ik7SSpz0JQIMeyFbR5M2qFAvWc3pvhb6YKmAQQ2rzaDemXO0l+Bq0iFh4/mSxwtP5rWlaIBLYpgvCVsVUuVhPBqSLYetdvGw9aIi6q4MMr4TCli05t+Crw2sLheDxQW8nDxJgZSb09qpgBz58KCgRZBAAEzMk9KjgFPIgDyFoAOEQAKYnADp0785LyAOM0/FwCAhSgxOADjZ0nGBwcLQgDy2ow2IwwDcnBDyYESdUAqJJFwKEeP+k4sEH7cvGDwoBH9aL1p0wyBDHIUfiv6n4cEEN0UwDgA3vxSJfEdgJx8wHBR4yAQdd9VUCNz6gEGE6AIRAm3WC0HcPAxqEFF51eh0QgWcLYaBDYrlpZMCG183AEgcLqkBjW65txlMIhzxAglML8sjJBPUd/tQDY4NswFV/LBp5XQsO3thCIRi8cNeVUh4C2l0naEYhVxbs2CVGQ3JFgwm35ZBWBWyeiYiIXP0QTRBJarSBnJx8ydUL+rSQ1n18cmJDngfFIMgHaW1gZqEeMMrVDN8YwFUF+BWKiAmI2nOCBzGcyJMEmn5mGEskBBHCmDwNUGonNjrFgAlOOkXCA69yEgOrGnEQQmhOnRBlrg9Y6tQGp2q0Qq7OJcCVBGnypAOznATAlQwz/KDtttxyawO1m/4QgLbjjivuuT9MAO667Lbr7rvwfpLtBtrSu6299H4Lbwzd9rvtBNGyNC281jolg10HLfuuB/sRCSxPwr77gJZO/s0QK08V6NuuCVUe5OsAvGoEpLu18sRADAjQ5lQC6zHrgbE83YcBzCwxgCu7HF+bywppBfAonx44y9UCgmjw5s3UxtCxxwgkonJtP3epX1o96OMBz1wxwGWuMyx9Dwcz+DaA1wgNK+WhaTGgMYM0S/sqBpdxlYAhOqQFItBjP+lqIUFQzFKRmurQKTMRFwLcqIlFjY53HQ4eS4mHYBCwOHe3AJWRIswAI9mwnNDyIHnbY9t1MVYwgeKfYDADdXfTKU4FTYckNDMgYgcfAxLYgHrkJsggHI6JtRAyLD98TsgDT8NSJJLiMPCBCSrwotgJSy+fZNWfdOjggtgNHwsD/gZsYIIIZnrwgAYBvEA2lMW5zkPs7GHduqga0fDCYyLc1sIKMqhfG1sAmNBuiLYLDEhgdAyK0V1oALm6HAYI83OUNDoQPMd9rYGFeSDwimOC3XWCeQ9kYCvidhjALaRBD4SFCHeSQva1RQMW7FWcMIKwuyBwIR3AWgpX6MAU7mYDZpMGBgIQQ3vwEBw+5MECPKgLDwzAb2nhwAwz+MAeKOpMAAiCBIoYCx5m5C48+AGTzuQBE7Stfg1EYlpOEAMmnjAEFvAeMziAwWR9TQYdXFcHQkA9NI6wZgnQQBBLZYIfnFGFdfxaD2awNnh5oAMImMEJSMCAMUkRLbDgAA/uIaeDB2DAePHKYgxCMIMV5AB+GFhBAlawgRbEoAOg3EcgAAAh+QQJDAAnACwAAAAAUABQAIVkZmS0trSMjozc3tx8enzMysykoqT08vR0cnTEwsScmpzs6uyEhoTU1tSsrqz8+vxsbmy8vryUlpTk5uSEgoTU0tSsqqxsamy8uryUkpTk4uR8fnzMzsykpqT09vR0dnTExsScnpzs7uyMiozc2ty0srT8/vxmZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/sCTcEgsGo9CBEXiSFQGoyGkoKlELBkKBMnter/Gy0cSGYgeprRHIG2k1YtBIPO5gO94JEQBOrz/JmtDCG6AbwsJEnZ5jF4ABA4aHoZ/D1FCECSUfx4DBnWNoUQIDhObgIKYhadvnluijBAhIqyobEmrtWkTirBgABQVk7pvllKaxG8eCQQAvlwXBrTJyrcnELnUEwrOz0UIIMPUatYIyONqAQjeQwQc6JWX19noCevsGX7w5IP04xivvF2QgGZfqhMIKuxLUyAguxMh9KEzhulcPYeiPjgcKJHaQWz7EmwUcA8PAg4AiVwIUdBjOYvJGhZRICICxi4XEjDEqKDj/qkFDRIYKAlghIUEDabVSjnkgoJJDwJ0c2Rg2AORKgmeOlBAAYGbTZUYqODzj8ymEiQeyDCVCwWlabASiWhogoMPjB5FKCt3SE9AGvB2gfAO0AMQG/+mEVECwaJGFwjsfdP3xEBxfyI8PsJyE1MhADprGNFWlNMFJs76LZvmgDUjEOAaUi1EQoDN3iAY2OwUs6EBuIVcsFDr6sbgD4cAoKlLwRECpnRVTs6Fri4SJYc4SHYYLHXhEnyfeiChCAQN48p/P5JzXIWZLXU1QL7+WnRiHuRdAEFtgbz6RihGTAmLfMDaJg4ACI1OyWjwigTUBKYgFxscSAkDQkRAjQP0/k14gYbJWIDQAMksINiESIxgISAVXMCAbKckgCJOMJ0ywQcKxMdKBjN2QRwxB4ywHTETENAjFwzouMkDCjCoSwXeHUkAicQ4UKNnR3IBQAHJJHBfLQZkyUUAyXBgQQlopqmmmhuImWIJAaAZZ5xw1llCCG7mqeeefPbp5xdnOoCmoGkSKmibfjKw5qJphvAlK2H6SSYxHPhDCQZ+XlCYdE7WAmWfBKBHjAU/6rIAonuOIB4lTGag5CbO8TmkLgcwQAFqxBRQWpYXUKlLYBD4WssBRuqpapl2YEDNbXlewGUyHQghQH/FisnAqqxSIMQHuBKDQYf1EUYNCa9coGwy/geod6QF2BrygAVTZdBuXVF+VyE1B6BqmbC6RIoiBApRU4ARBghcb3IXyMsdj0V8IGot06FowIpvfFoEAAVDfNx6bS1HsQmvEQHBo4DQdoIE9lD3gQOJzVvBrkMofGnLJiwQArh3QGCBHyYLCMgC2nIxBSW0cfTGAQlsgLPQI3BgVWUDvVoCzEQQ0G1cGFn3xwERkJbHBQIIY8h0WqdB7hfLiQO1VpscMIADI2iERGQCBDABtt2pJKAIQaN9bs8wUuKBBiidOBAGHEjirUOhofFAtHhAkMBnlj2FzkGEwAM4h4wgsFFa8DxgTSahQz3C0l+U7dIgAcMTsS+XLfTRpJXE5P2QAB+PJw9IC5lAuS8InGtQOZbWznJyEASQuyGYF1+LCB2g/nUGD1ND0TW010IChvUB8EECy/OjCjqMZVffBSPwy0rz7jEgvUAKNPCqYaNnXwkHp+eJgAJin4J5620rgAAONqMRlEB94sPekkhgAX1lSgkWqMAEDlCQ6/HOBA8QAeEM8BWq/cl7DFCABTAAgr5BAAMFwIADJMAABHgQFkEAADs=\"\n\n//////////////////\n// WEBPACK FOOTER\n// ./styles/images/spinner.gif\n// module id = 338\n// module chunks = 0\n//# sourceURL=webpack:///./styles/images/spinner.gif?");
|
||
|
||
/***/ }),
|
||
/* 339 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\treturn /msie [6-9]\\b/.test(self.navigator.userAgent.toLowerCase());\n\t}),\n\tgetHeadElement = memoize(function () {\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [];\n\nmodule.exports = function(list, options) {\n\tif(false) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the bottom of <head>.\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list);\n\taddStylesToDom(styles, options);\n\n\treturn function update(newList) {\n\t\tvar mayRemove = [];\n\t\tfor(var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\n\t\t\t\t\tdomStyle.parts[j]();\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction addStylesToDom(styles, options) {\n\tfor(var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles(list) {\n\tvar styles = [];\n\tvar newStyles = {};\n\tfor(var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\t\tif(!newStyles[id])\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse\n\t\t\tnewStyles[id].parts.push(part);\n\t}\n\treturn styles;\n}\n\nfunction insertStyleElement(options, styleElement) {\n\tvar head = getHeadElement();\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\n\tif (options.insertAt === \"top\") {\n\t\tif(!lastStyleElementInsertedAtTop) {\n\t\t\thead.insertBefore(styleElement, head.firstChild);\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\thead.appendChild(styleElement);\n\t\t}\n\t\tstyleElementsInsertedAtTop.push(styleElement);\n\t} else if (options.insertAt === \"bottom\") {\n\t\thead.appendChild(styleElement);\n\t} else {\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\n\t}\n}\n\nfunction removeStyleElement(styleElement) {\n\tstyleElement.parentNode.removeChild(styleElement);\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\n\tif(idx >= 0) {\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement(options) {\n\tvar styleElement = document.createElement(\"style\");\n\tstyleElement.type = \"text/css\";\n\tinsertStyleElement(options, styleElement);\n\treturn styleElement;\n}\n\nfunction createLinkElement(options) {\n\tvar linkElement = document.createElement(\"link\");\n\tlinkElement.rel = \"stylesheet\";\n\tinsertStyleElement(options, linkElement);\n\treturn linkElement;\n}\n\nfunction addStyle(obj, options) {\n\tvar styleElement, update, remove;\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\n\t} else if(obj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\") {\n\t\tstyleElement = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t\tif(styleElement.href)\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\n\t\t};\n\t} else {\n\t\tstyleElement = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle(newObj) {\n\t\tif(newObj) {\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\n\t\t\t\treturn;\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = styleElement.childNodes;\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\n\t\tif (childNodes.length) {\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyleElement.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag(styleElement, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyleElement.setAttribute(\"media\", media)\n\t}\n\n\tif(styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = css;\n\t} else {\n\t\twhile(styleElement.firstChild) {\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\n\t\t}\n\t\tstyleElement.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink(linkElement, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\tif(sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = linkElement.href;\n\n\tlinkElement.href = URL.createObjectURL(blob);\n\n\tif(oldSrc)\n\t\tURL.revokeObjectURL(oldSrc);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/style-loader/addStyles.js\n// module id = 339\n// module chunks = 0\n//# sourceURL=webpack:///./~/style-loader/addStyles.js?");
|
||
|
||
/***/ })
|
||
/******/ ])
|
||
});
|
||
; |